2012-12-27 1 views
0

Bonjour, j'essaie d'obtenir deux données de mes contrôles à l'intérieur de répéteur (txtComment et ddlServiceStatus) afin que je puisse exécuter mon instruction d'insertion dans btnNewComment mais je ne peux pas obtenir de données .Voici mon code s'il te plaît aide moi.Impossible d'obtenir les données de ma zone de texte et liste déroulante dans le répéteur

<asp:Repeater ID="Repeater1" runat="server" 
     onitemdatabound="Repeater1_ItemDataBound"> 
    <ItemTemplate> 
<table border="1" cellpadding="0" cellspacing="2" style="font-family: Arial, Helvetica, sans-serif; font-weight: bold; font-size: 13px; border-collapse: collapse; border-color:Black;" 
     width="900px"> 
<tr style="color: #FFFFFF; background-color: #FF0000"> 
<td>Service Name</td> <td>Date</td><td>Channel Name</td><td>User Name</td><td>Msisdn</td><td>Status</td> 
</tr> 
<tr> 
<td><asp:Label ID="lblService" runat="server" Text='<%# Eval("serviceName") %>'></asp:Label></td> 
<td><asp:Label ID="lblDate" runat="server" Text='<%# Eval("date") %>'></asp:Label></td> 
<td><asp:Label ID="lblChannelName" runat="server" Text='<%# Eval("channelName") %>'></asp:Label></td> 
<td><asp:Label ID="lblUserName" runat="server" Text='<%# Eval("userName") %>'></asp:Label></td> 
<td><asp:Label ID="lblMsisdn" runat="server" Text='<%# Eval("msisdn") %>'></asp:Label></td> 
<td><asp:Label ID="lblStatus" runat="server" Text='<%# getStatusName(Eval("status")) %>'></asp:Label></td> 
</tr><tr><td colspan="6"><asp:Label ID="lblComment" runat="server" Text='<%# Eval("comment") %>' Width="900px"></asp:Label></td></tr> 

<tr> 
<td style="text-align:center;" colspan="6"><div><br /><a href="#" class="ToggleTikla" > 
    <img src="../images/continuebtn.jpg" /> </a> 

    <div id="fader"><br /> <asp:TextBox ID="txtComment" runat="server" TextMode="MultiLine" Width="900px" BorderStyle="Solid" BorderColor="Black" BackColor="#CCFFFF"></asp:TextBox><br /> 
     <asp:DropDownList ID="ddlServiceStatus" runat="server" ></asp:DropDownList> 
     <asp:Button ID="btnNewComment" runat="server" Text="New Comment" ForeColor="White" BackColor="Red" Font-Bold="True" onclick="btnNewComment_Click" />  
     <br /><br /> 
     <asp:Repeater ID="rpNested" runat="server"> 
     <ItemTemplate> 
     <table border="1" cellpadding="0" cellspacing="2" style="font-family: Arial, Helvetica, sans-serif; font-weight: bold; font-size: 13px; border-collapse: collapse; border-color:Black; text-align:left;" width="900px"> 

     <tr style="color: #FFFFFF; background-color: #FF0000"> 
     <td>Name</td> 
     <td>Date</td> 
     <td>Status</td> 
     </tr> 
     <tr> 
     <td><asp:Label ID="lblExUserName" runat="server" Text='<%# Eval("Tester") %>'></asp:Label> </td> 
     <td><asp:Label ID="lblExDate" runat="server" Text='<%# Eval("Date") %>'></asp:Label></td> 
     <td><asp:Label ID="lblExstatus" runat="server" Text='<%# getStatusName(Eval("status")) %>'></asp:Label></td>  
     </tr> 
     <tr><td colspan="3"> 
      <asp:Label ID="lblExCommand" runat="server" Text='<%# Eval("Comment") %>'></asp:Label></td></tr> 
     </table> <br /><br /> 
     </ItemTemplate> 
     </asp:Repeater> 
</div> 

</div> 
</td> 

protected void ImageButton1_Click(object sender, ImageClickEventArgs e) 
     { 
      if (txtAlert.Text.Length > 0)//if user entered an alertid 
      { 
       int alertID; 
       try 
       { 
        alertID = Convert.ToInt32(txtAlert.Text);//convert alertid to int alertid 
       } 
       catch (Exception ex) 
       { 
        return;//do nothing user not entered a valid alertid 
       } 
      } 
      SqlDataAdapter adp = new SqlDataAdapter("aaa_GetAlertbyUserID", _con); 
      adp.SelectCommand.CommandType = CommandType.StoredProcedure; 
      adp.SelectCommand.Parameters.AddWithValue("@userID", DropDownList1.SelectedValue); 
      adp.SelectCommand.Parameters.AddWithValue("@alertID", txtAlert.Text); 

      //create and show search results 
      DataSet ds = new DataSet(); 
      adp.Fill(ds); 
      Repeater1.DataSource = ds; 
      Repeater1.DataBind(); 
      //ds.Relations.Add(new DataRelation("alertComments",ds.Tables[0].Columns["ID"],ds.Tables[1].Columns["ID"])); 
      //rpAlert.DataSource = ds; 
      //rpAlert.DataBind(); 

      foreach (RepeaterItem ritem in Repeater1.Items) 
      { 
       DropDownList ddl = ritem.FindControl("ddlServiceStatus") as DropDownList; 
       ddl = getAlertStatusList(ddl); 
       TextBox txt = ritem.FindControl("txtComment") as TextBox; 
       Button btn = ritem.FindControl("btnNewComment") as Button; 
       //btn.Click += new EventHandler(btn_Click); 
      } 



     } 

     private DropDownList getAlertStatusList(DropDownList ddl) 
     { 
      ddl.Items.Clear(); 
      SqlDataAdapter adp = new SqlDataAdapter("pr_GetAlertStatusList", _con); 
      adp.SelectCommand.CommandType = CommandType.StoredProcedure; 
      DataTable dt = new DataTable(); 
      adp.Fill(dt); 
      ddl.DataSource = dt; 
      ddl.DataValueField = "ID"; 
      ddl.DataTextField = "Name"; 
      ddl.DataBind(); 
      ddl.Items.Insert(0, "Please Select Status"); 
      return ddl; 

     } 

     protected void btnNewComment_Click(object sender, EventArgs e) 
     { 
      var status = Convert.ToInt32(((DropDownList)Repeater1.FindControl("ddlServiceStatus")).SelectedValue); 
      var comment = ((TextBox)Repeater1.FindControl("txtComment")).Text; 


      if (comment.Length == 0) 
      { 
       return; 
      } 
      else 
      { 

       try 
       { 
        int alertID = Convert.ToInt32(txtAlert.Text); 
        SqlDataAdapter adp = new SqlDataAdapter("aaa_InsertAlertCommentwithStatust", _con); // 
        adp.SelectCommand.CommandType = CommandType.StoredProcedure; 
        adp.SelectCommand.Parameters.AddWithValue("@alertID", alertID); 
        adp.SelectCommand.Parameters.AddWithValue("@userID", DropDownList1.SelectedValue); 
        adp.SelectCommand.Parameters.AddWithValue("@date", DateTime.Now); 
        adp.SelectCommand.Parameters.AddWithValue("@comment", comment); 
        adp.SelectCommand.Parameters.AddWithValue("@status", status - 1); 
        DataSet ds = new DataSet(); 
        adp.Fill(ds); 
        adp.SelectCommand.ExecuteNonQuery(); 
       } 
       catch (Exception x) 
       { 

        lblInfo.Text = "Error" + x.Message; 
       } 
      } 
     } 
+0

s'il vous plaît préciser 'Je ne peux pas une partie de data'. Avez-vous 'null' ou une exception est levée? la méthode '.FindControl' renvoie-t-elle un contrôle? – Nogard

Répondre

0

à la plupart des lieux de votre ouverture et de balise de fermeture ne sont pas correctes format.You ont commencé une étiquette table, étiquette asp:Repeater mais n'est pas closing tag. Donc d'abord améliorer à ce domaine. Maintenant venu à la solution de votre problème.Vos premiers asp:Repeater n'ont pas closing tag ainsi à code behind vous n'êtes pas en mesure de prendre la valeur de control.

est Ci-dessous le code html au format correct:

<asp:Repeater ID="Repeater1" runat="server"> 
    <ItemTemplate> 
     <table border="1" cellpadding="0" cellspacing="2" style="font-family: Arial, Helvetica, sans-serif; 
      font-weight: bold; font-size: 13px; border-collapse: collapse; border-color: Black;" 
      width="900px"> 
      <tr style="color: #FFFFFF; background-color: #FF0000"> 
       <td> 
        Service Name 
       </td> 
       <td> 
        Date 
       </td> 
       <td> 
        Channel Name 
       </td> 
       <td> 
        User Name 
       </td> 
       <td> 
        Msisdn 
       </td> 
       <td> 
        Status 
       </td> 
      </tr> 
      <tr> 
       <td> 
        <asp:Label ID="lblService" runat="server" Text='<%# Eval("serviceName") %>'></asp:Label> 
       </td> 
       <td> 
        <asp:Label ID="lblDate" runat="server" Text='<%# Eval("date") %>'></asp:Label> 
       </td> 
       <td> 
        <asp:Label ID="lblChannelName" runat="server" Text='<%# Eval("channelName") %>'></asp:Label> 
       </td> 
       <td> 
        <asp:Label ID="lblUserName" runat="server" Text='<%# Eval("userName") %>'></asp:Label> 
       </td> 
       <td> 
        <asp:Label ID="lblMsisdn" runat="server" Text='<%# Eval("msisdn") %>'></asp:Label> 
       </td> 
       <td> 
        <%--<asp:Label ID="lblStatus" runat="server" Text='<%# getStatusName(Eval("status")) %>'></asp:Label>--%> 
       </td> 
      </tr> 
      <tr> 
       <td colspan="6"> 
        <asp:Label ID="lblComment" runat="server" Text='<%# Eval("comment") %>' Width="900px"></asp:Label> 
       </td> 
      </tr> 
      <tr> 
       <td style="text-align: center;" colspan="6"> 
        <div> 
         <br /> 
         <a href="#" class="ToggleTikla"> 
          <img src="../images/continuebtn.jpg" /> 
         </a> 
        </div> 
       </td> 
      </tr> 
     </table> 
     <div id="fader"> 
      <br /> 
      <asp:TextBox ID="txtComment" runat="server" TextMode="MultiLine" Width="900px" BorderStyle="Solid" 
       BorderColor="Black" BackColor="#CCFFFF"></asp:TextBox><br /> 
      <asp:DropDownList ID="ddlServiceStatus" runat="server"> 
      </asp:DropDownList> 
      <asp:Button ID="btnNewComment" runat="server" Text="New Comment" ForeColor="White" 
       BackColor="Red" Font-Bold="True" OnClick="btnNewComment_Click" /> 
      <br /> 
      <br /> 
     </div> 
    </ItemTemplate> 
</asp:Repeater> 
<asp:Repeater ID="rpNested" runat="server"> 
    <ItemTemplate> 
     <table border="1" cellpadding="0" cellspacing="2" style="font-family: Arial, Helvetica, sans-serif; 
      font-weight: bold; font-size: 13px; border-collapse: collapse; border-color: Black; 
      text-align: left;" width="900px"> 
      <tr style="color: #FFFFFF; background-color: #FF0000"> 
       <td> 
        Name 
       </td> 
       <td> 
        Date 
       </td> 
       <td> 
        Status 
       </td> 
      </tr> 
      <tr> 
       <td> 
        <asp:Label ID="lblExUserName" runat="server" Text='<%# Eval("Tester") %>'></asp:Label> 
       </td> 
       <td> 
        <asp:Label ID="lblExDate" runat="server" Text='<%# Eval("Date") %>'></asp:Label> 
       </td> 
       <td> 
        <%-- <asp:Label ID="lblExstatus" runat="server" Text='<%# getStatusName(Eval("status")) %>'></asp:Label>--%> 
       </td> 
      </tr> 
      <tr> 
       <td colspan="3"> 
        <asp:Label ID="lblExCommand" runat="server" Text='<%# Eval("Comment") %>'></asp:Label> 
       </td> 
      </tr> 
     </table> 
     <br /> 
     <br /> 
    </ItemTemplate> 
</asp:Repeater> 
+0

Non j'ai des balises de fermeture c'est ma première fois ici pour poster peut-être qu'il ne s'est pas présenté mais je les ai eu et il n'y a aucun problème à remplir les répéteurs et dropdownlist le problème est de sélectionner l'utilisateur à partir de dropdownlist – azermann

Questions connexes