comment trouver le contrôle de zone de texte dans le répéteur

la programmation


comment trouver la valeur de contrôle de la zone de texte dans le répéteur à l’intérieur d’un autre répéteur et mettre à jour les données, ce répéteur génère un département et un autre répéteur pour générer des employés avec leur SALAIRE et lorsque j’appuie sur Enregistrer la latte, il peut prendre la valeur de la zone de texte (SALAIRE) et mettre à jour les données dans la base de données
ce code pour générer les données et remplir le répéteur

VB
Private Sub BindData()
      Try
          dt = cls.rtv_All_Dep
          rptCustomRepeater.DataSource = dt
          rptCustomRepeater.DataBind()

      Catch
      End Try
  End Sub
  Protected Sub CustomInfoRepeater_ItemDataBound(sender As Object, e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles rptCustomRepeater.ItemDataBound
      If e.Item.ItemType = ListItemType.Item Then
          Try

              Dim LabID As Label = TryCast(e.Item.FindControl("LabID"), Label)
              Dim lblManID As Label = TryCast(e.Item.FindControl("lblManID"), Label)
              Dim Repeater1 As Repeater = TryCast(e.Item.FindControl("Repeater1"), Repeater)
              Dim depID As Integer = LabID.Text
              dt = cls.rtv_All_Emp(depID)
              Repeater1.DataSource = dt
              Repeater1.DataBind()



          Catch
          End Try
      End If
  End Sub

et ce code html

ASP.NET
<asp:Repeater ID="rptCustomRepeater" runat="server">
            <HeaderTemplate>
                
            </HeaderTemplate>
            <ItemTemplate>
                <table id="rptCustom">
                    <tr class="rptHeader">
                        <th>DEPARTMENT_ID</th>
                        <th>DEPARTMENT_NAME</th>
                        <th>MANAGER_ID</th>
                    </tr>
                <tr class="rptDataRows">
                    <td><asp:Label ID="LabID" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "DEPARTMENT_ID")%>'></asp:Label> </td>
                    <td><%#DataBinder.Eval(Container.DataItem, "DEPARTMENT_NAME")%> </td>
                    <td><asp:Label ID="lblManID" runat="server"  Visible="false" Text='<%#DataBinder.Eval(Container.DataItem,"MANAGER_ID")%>'></asp:Label></td>
                         <td><asp:Label ID="lblManName" runat="server" Text=""></asp:Label> </td>
            </tr>
                </table>
                
                       
                <asp:Repeater ID="Repeater1" runat="server">

                    <HeaderTemplate>  <table id="rptEmp">
                    <tr class="rptHeader">
                        <th>EmpID</th>
                        <th>Emp NAME</th>
                        <th>SALARY</th>
                    </tr></HeaderTemplate>
                    <ItemTemplate>

                       
                <tr class="rptDataRows">
                    <td><asp:Label ID="LabID" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "EMPLOYEE_ID")%>'></asp:Label> </td>
                    <td>
                         <asp:Label ID="lblEmpFName" runat="server" Text= '<%#DataBinder.Eval(Container.DataItem, "FIRST_NAME")%>' ></asp:Label>  <asp:Label ID="lblEmpSName" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "LAST_NAME")%>'></asp:Label></td>
                         <td>
                             <asp:TextBox ID="txtSALARY"  runat="server"  Text='<%#DataBinder.Eval(Container.DataItem, "SALARY")%>'></asp:TextBox>
                         </td>
            </tr>
                
                


                    </ItemTemplate>
                    <FooterTemplate></table>
                        -----------------------------------------------------------------------------------------------------------------
                        <br />
                        -----------------------------------------------------------------------------------------------------------------

                    </FooterTemplate>

                </asp:Repeater>



              
            </ItemTemplate>
            <FooterTemplate>
                
            </FooterTemplate>

        </asp:Repeater>
        <asp:Button ID="Button1" runat="server" Text="Button" />

Solution 1

Quelque chose comme ci-dessous. Vous devez parcourir les éléments et trouver le contrôle pour Salary.

VB
Dim Repeater1 As Repeater = TryCast(e.Item.FindControl("Repeater1"), Repeater)

For Each item In Repeater1.Items

   dim txtSalary As TextBox = TryCast(item.FindControl("txtSALARY"), TextBox)

   ' Do whatever you want to do with this textbox value.

Next

Solution 2



“>

protected void RPL_ItemCommand (source de l’objet, RepeaterCommandEventArgs e)
{

TextBox TxtQty = (TextBox)e.Item.FindControl(“TxtQty”);
HiddenField HidPro = (HiddenField)e.Item.FindControl(“HidPro”);

Session[“PLQty”] = HidPro.Valeur ;
Session[“PLId”] = TxtQty.Text ;
}

コメント

タイトルとURLをコピーしました