Asp.Net获取Repeater控件中子控件返回值

发布于:2014年10月30日    浏览:1837 次    属于:Web开发 > Asp.Net开发 原创作者:张晓栋

 

在Asp.Net中Repeater是最常用的列表数据展示控件,如新闻列表等都会用这个控件,在开发中有时我们是需要编辑Repeater中某项 的值,首先就要从后台可以获取被修改的值是什么,今天要做的案例是获取Repeater中文本框被编辑后的值,当然首先要将文本框的自动返回属性 AutoPost设置为True,这样每次编辑后才会返回数据,接着在后台事件中接受返回的修改值处理就好。


前端代码:

<asp:Repeater ID="Repeater1" runat="server">
    <ItemTemplate>
        <asp:TextBox ID="TextBox1" runat="server" AutoPostBack="True" OnTextChanged="TextBox1_TextChanged"></asp:TextBox>
    </ItemTemplate>
</asp:Repeater>


后台代码:

protected void TextBox1_TextChanged(object sender, EventArgs e)
{
    RepeaterItem i = ((TextBox)sender).Parent as RepeaterItem;
    string zhi = ((TextBox)i.FindControl("TextBox1")).Text;
}


这样变量 zhi 就是编辑的文本框的内容了;

RepeaterItem i = ((TextBox)sender).Parent as RepeaterItem;

作 用是获取响应时间的文本框是第几行,从而在获取这一行的控件的值,如果是使用其他控件来响应的话只要把RepeaterItem i = ((TextBox)sender).Parent as RepeaterItem;中的TextBox替换为对应的控件类型名称即可如Button;

string zhi = ((TextBox)i.FindControl("TextBox1")).Text;

做用是获取操作行中TextBox1文本框中值,如果想要获取操作行中其它控件的值只要将TextBox替换为控件类型名称,TextBox1替换为控件ID名就好。