黑马程序员技术交流社区

标题: 如何在repeater控件外面点击某个按钮获取repeater内textbox的值? [打印本页]

作者: 安超    时间: 2012-2-23 19:46
标题: 如何在repeater控件外面点击某个按钮获取repeater内textbox的值?
有木有人明白双击在repeater控件外面的按钮,来获得repeater控件里面的控件值,如repeater控件里的textbox,button的值等?有木有人知道?
作者: 莫洪刚    时间: 2012-2-23 23:21
建立强类型数据集,
绑定对象数据源,
用表格的形式展示出数据
Repeater代码具体如下:

//Repeater代码
  <asp:Repeater ID="Repeater1" runat="server" DataSourceID="ObjectDataSource1">
    <HeaderTemplate><table border="1"><tr><td>姓名</td><td>性别</td></tr></HeaderTemplate>
    <ItemTemplate><tr><td>
        <asp:TextBox ID="txtname" runat="server" Text='<%#Eval("e_name") %>'></asp:TextBox></td><td>
            <asp:TextBox ID="txtsex" runat="server" Text='<%#Eval("e_sex") %>'></asp:TextBox></td></tr></ItemTemplate>
    <FooterTemplate></table></FooterTemplate>
    </asp:Repeater>
   //按钮1代码
    <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
   //按钮1后台代码
        protected void Button1_Click(object sender, EventArgs e)
        {
            TextBox txt1 = (TextBox)Repeater1.Items[0].FindControl("txtname");
            if (txt1 != null)
            {
                Response.Write(txt1.Text);
            }
            else
            {
                Response.Write("空");
            }
        }
得出是Items[0]是张三,Items[1]是李四,Items[2]是王二...就这样得到的,主要是FindControl("controlId")这个方法。
page类中也有FindControl方法("controlId");
   
作者: 安超    时间: 2012-2-24 07:59
TextBox txt1 = (TextBox)Repeater1.Items[0].FindControl("txtname");为何不是TextBox txt1 = (TextBox)Repeater1.FindControl("txtname");
作者: 莫洪刚    时间: 2012-2-24 09:40
  
通过渲染的代码可以发现如下:
TextBox1渲染成了Repeater1_TextBox1_0......等,TextBox1隐藏了找不到啊
<table border="1"><tr><td>姓名</td><td>性别</td></tr><tr><td>

        <input name="Repeater1$ctl01$TextBox1" type="text" value="张三" id="Repeater1_TextBox1_0" /></td><td>

            <input name="Repeater1$ctl01$TextBox2" type="text" value="男" id="Repeater1_TextBox2_0" /></td></tr><tr><td>

        <input name="Repeater1$ctl02$TextBox1" type="text" value="李四" id="Repeater1_TextBox1_1" /></td><td>

            <input name="Repeater1$ctl02$TextBox2" type="text" value="男" id="Repeater1_TextBox2_1" /></td></tr><tr><td>

        <input name="Repeater1$ctl03$TextBox1" type="text" value="王二" id="Repeater1_TextBox1_2" /></td><td>

            <input name="Repeater1$ctl03$TextBox2" type="text" value="男" id="Repeater1_TextBox2_2" /></td></tr><tr><td>

        <input name="Repeater1$ctl04$TextBox1" type="text" value="张飞" id="Repeater1_TextBox1_3" /></td><td>

            <input name="Repeater1$ctl04$TextBox2" type="text" value="男" id="Repeater1_TextBox2_3" /></td></tr><tr><td>

        <input name="Repeater1$ctl05$TextBox1" type="text" value="貂蝉" id="Repeater1_TextBox1_4" /></td><td>

            <input name="Repeater1$ctl05$TextBox2" type="text" value="女" id="Repeater1_TextBox2_4" /></td></tr><tr><td>

        <input name="Repeater1$ctl06$TextBox1" type="text" value="大乔" id="Repeater1_TextBox1_5" /></td><td>

            <input name="Repeater1$ctl06$TextBox2" type="text" value="女" id="Repeater1_TextBox2_5" /></td></tr><tr><td>

        <input name="Repeater1$ctl07$TextBox1" type="text" value="小乔" id="Repeater1_TextBox1_6" /></td><td>

            <input name="Repeater1$ctl07$TextBox2" type="text" value="女" id="Repeater1_TextBox2_6" /></td></tr><tr><td>

        <input name="Repeater1$ctl08$TextBox1" type="text" value="莫洪刚" id="Repeater1_TextBox1_7" /></td><td>

            <input name="Repeater1$ctl08$TextBox2" type="text" value="男" id="Repeater1_TextBox2_7" /></td></tr>
</table>

   





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2