Ath*_*hul 3 asp.net checkbox repeater
我有一个CheckBox内部Repeater.像这样:
<asp:Repeater ID="rptEvaluationInfo" runat="server">
<ItemTemplate>
<asp:Label runat="server" Id="lblCampCode" Text="<%#Eval("CampCode") %>"></asp:Label>
<asp:CheckBox runat="server" ID="cbCoaching" value="coaching-required" ClientIDMode="AutoID" AutoPostBack="True" OnCheckedChanged="cbCoaching_OnCheckedChanged" />
</ItemTemplate>
</asp:Repeater>
Run Code Online (Sandbox Code Playgroud)
当有人点击checkbox我想要在我的代码中获得整行时.因此,如果CheckedChanged发生了,我想获得Text的Label lblCampCode代码后面.
可能吗?
我设法写了这么多代码.
protected void cbCoaching_OnCheckedChanged(object sender, EventArgs e)
{
CheckBox chk = (CheckBox)sender;
Repeater rpt = (Repeater)chk.Parent.Parent;
string CampCode = "";// here i want to get the value of CampCode in that row
}
Run Code Online (Sandbox Code Playgroud)
所以你想得到RepeaterItem?你这样做,通过铸造NamingContainer的的CheckBox(sender参数).然后你几乎就在那里,你需要FindControl标签:
protected void cbCoaching_OnCheckedChanged(object sender, EventArgs e)
{
CheckBox chk = (CheckBox)sender;
RepeaterItem item = (RepeaterItem) chk.NamingContainer;
Label lblCampCode = (Label) item.FindControl("lblCampCode");
string CampCode = lblCampCode.Text;// here i want to get the value of CampCode in that row
}
Run Code Online (Sandbox Code Playgroud)
这有很大的优势超过Parent.Parent-approaches,如果你添加像其他容器控件它的工作原理,甚至Panel或Table.
顺便说一句,这对于ASP.NET中的任何数据绑定Web控件(如GridViewetc)都有类似的方式.
| 归档时间: |
|
| 查看次数: |
6051 次 |
| 最近记录: |