关于在asp:Repeater 空间中嵌入了 RadioButtonList 控件后,如何取其行值的问题!
我现在有一个<asp:Repeater 控件,我在里面加入了 RadioButtonList 控件,具体的代码如下:<asp:Repeater runat="server" ID="studentList" DataMember="ct_id" >
<ItemTemplate>
<asp:RadioButtonList ID="SShow" DataMember="ct_id" runat="server" RepeatDirection="Horizontal" AutoPostBack=true OnSelectedIndexChanged="MainBorad_ItemDataBound">
<asp:ListItem Value=0>出席</asp:ListItem><asp:ListItem Value=1>缺席</asp:ListItem>
</asp:RadioButtonList>
</ItemTemplate>
</asp:Repeater>
现在的问题是,当我在页面上选择 RadioButtonList 的时候,我该如何触发事件?如果我触发 SShow_SelectedIndexChanged 事件的话,那么我该如何在该事件中获取易做图作的这个RadioButtonList所在的行的id;我不需要循环;能否有方法读取到,请各位高人指点! --------------------编程问答-------------------- RadioButtonList r = (sender as RadioButtonList);
Control ctl = r.Parent;
/*
while (ctl != null && !(ctl is RepeaterItem))
ctl = ctl.Parent;
*/
if (null != ctl)
{
int idx = ((RepeaterItem)ctl).ItemIndex;
// ...
} --------------------编程问答-------------------- 设置radiobuttonlist的commandName
Repeater 的ItemCommand事件
通过 e.CommandName判断
然后转换类型,取id --------------------编程问答--------------------
--------------------编程问答-------------------- 楼上正解 --------------------编程问答-------------------- FindControl效率比较低,用事件更好。学习了。
触发事件
((RadioButtonList)studentList.Items[0].FindControl("SShow")).SelectedIndexChanged+=new EventHandler(SShow_SelectedIndexChanged);
private void SShow_SelectedIndexChanged(object sender, EventArgs e)
{
}
取ID
((RadioButtonList)studentList.Items[0].FindControl("SShow)).ID
补充:.NET技术 , ASP.NET