如何在转发器中找到文本框控件 [英] how to find textbox control in repeater

查看:56
本文介绍了如何在转发器中找到文本框控件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在其他转发器内部的转发器中查找文本框控件值并更新数据此转发器生成部门和其他转发器以生成具有其SALARY的员工,当我按保存订单时,它可以从文本框(SALARY)获取值并更新数据库中的数据

此代码用于生成数据和填充转发器

 私有  Sub  BindData()
尝试
dt = cls.rtv_All_Dep
rptCustomRepeater.DataSource = dt
rptCustomRepeater.DataBind()

Catch
结束 尝试
结束 Sub
受保护的 Sub CustomInfoRepeater_ItemDataBound(sender 作为 对象,e As System.Web.UI .WebControls.RepeaterItemEventArgs)句柄 rptCustomRepeater.ItemDataBound
如果 e.Item.ItemType = ListItemType。项目然后
尝试

Dim LabID 作为标签= TryCast (e.Item.FindControl( LabID),Label)
Dim lblManID As Label = TryCast (e.Item.FindControl( lblManID),标签)
Dim Repeater1 As Repeater = TryCast (e.Item.FindControl( Repeater1),Repeater)
Dim depID 作为 整数 = LabID.Text
dt = cls.rtv_All_Emp(depID)
Repeater1.DataSource = dt
Repeater1.DataBind()



Catch
结束 尝试
结束 如果
结束 Sub



和这个HTML代码

 <   asp:Repeater     ID   =  rptCustomRepeater < span class =code-attribute>   runat   =  server >  
< HeaderTemplate >

< / HeaderTemplate >
< ItemTemplate >
< id = rptCustom >
< tr class = rptHeader >
< th > DEPARTMENT_ID < / th >
< th > DEPARTMENT_NAME < / th >
< th > MANAGER_ID < / th >
< / tr >
< tr class = rptDataRows >
< td > < asp:标签 ID = LabID runat = server 文字 =' <% #DataBinder.Eval(Container.DataItem, DEPARTMENT_ID)% >' > < / asp:标签 > < / td >
< td > <% #DataBinder.Eval(Container.DataItem, DEPARTMENT_NAME)%> < / td >
< td > < span class =code-keyword>< asp:Label ID = lblManID runat = server 可见 = false 文字 =' <%#DataBinder.Eval(Container.DataItem, MANAGER_ID )%>' > < / asp:标签 > < / td >
< td > < asp:Label ID = lblManName runat = server 文字 = > < / asp:标签 > < / td >
< / tr >
< / table >


< asp:Repeater ID = Repeater1 runat = 服务器 >

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


< tr class = rptDataRows >
< td > < asp:标签 ID = LabID runat = server 文字 =' < ;% #DataBinder.Eval(Container.DataItem, EMPLOYEE_ID)%> ' > < / asp:标签 > < / td >
< td >
< asp:标签 ID = lblEmpFName runat = server 文字 =' <%#DataBinder.Eval(Container.DataItem, FIRST_NAME)%>' > < / asp:标签 > < asp:标签 < span class =code-attribute> ID
= lbl EmpSName runat = server 文本 =' <%#DataBinder.Eval(Container.DataItem, LAST_NAME)%>' > < / asp:Label > < / td >
< td >
< asp:TextBox ID = txtSALARY runat = server 文字 =' <%#DataBinder.Eval(Container.DataItem, SALARY)%>' > < / asp:TextBox >
< / td >
< / tr >




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

< / FooterTemplate >

< / asp:Repeater >




< / ItemTemplate >
< FooterTemplate >

< / FooterTemplate >

< / asp:Repeater >
< asp:按钮 ID = Button1 runat = server 文字 < span class =code-keyword> = 按钮 / >

解决方案

像下面的东西。你需要遍历这些项目并找到 Salary 的控件。

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

对于 每个 Repeater1.Items

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

' 执行此文本框值的任何操作。

下一步


how to find text-box control value in repeater in inside other repeater and update data this repeater generate department and other repeater to generate Employees with their SALARY and when i press save batten it can take value from text-box( SALARY) and update data in DB
this code for generate the data and fill repeater

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


and this html code

<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" />

解决方案

Something like below. You need to loop through the items and find the control for Salary.

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


这篇关于如何在转发器中找到文本框控件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆