【发布时间】:2013-10-14 21:44:12
【问题描述】:
我在中继器中使用复选框,我怎么知道哪个 OnCheckedChanged 中的复选框已更改? 我试图设置 id 然后复选框绑定数据,但是 不起作用。希望有人可以帮助我
谢谢 /垫子
【问题讨论】:
我在中继器中使用复选框,我怎么知道哪个 OnCheckedChanged 中的复选框已更改? 我试图设置 id 然后复选框绑定数据,但是 不起作用。希望有人可以帮助我
谢谢 /垫子
【问题讨论】:
检查sender(Event Target)参数
protected void Chb_Changed(object sender, EventArgs e)
{
if (sender != null)
{
CheckBox cb=(CheckBox)sender;
string clickedCheckBoxID=cb.ID;
}
}
【讨论】:
尝试关注。请注意,我们还可以在某个隐藏字段中绑定一些主列,比如“ID”列,然后在后面输入代码。
ASPX 端
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="sqldtasource" >
<ItemTemplate>
<asp:CheckBox ID="chk" runat="server" AutoPostBack="true" Text='<%#Bind("Name")%>' OnCheckedChanged="Chb_Changed"/>
<asp:HiddenField ID="hdn_ID" runat="server" Value='<%# DataBinder.Eval(Container.DataItem, "ID") %>'/>
</ItemTemplate>
</asp:Repeater>
代码背后:
protected void Chb_Changed(object sender, EventArgs e)
{
if (sender != null)
{
try
{
var hdnID = (HiddenField)checkBox.NamingContainer .FindControl("hf_ID");
if(hdnID != null)
{
string primaryFieldValue = hdnID.Value;
}
if (((CheckBox)sender).Checked)
{
Response.Write(((CheckBox)sender).Text + " is checked");
}
}
catch {
}
}
}
【讨论】: