[英]CheckBox not Working from inside a Repeater in ASP.NET Webforms
这是我在Repeater里面写的
<td style="text-align: center; width: 60px">
<asp:CheckBox ID="DeleteCheckBox" runat="server" CommandArgument='<%# Eval("Id")%>' AutoPostBack="True" OnCheckedChanged="DeleteCheckBox_Click" />
td>
这是 C#
protected void DeleteLinkbtn_Click(object sender, EventArgs e)
{
try
{
LinkButton BtnId = (LinkButton)(sender);
string ButtonId = BtnId.CommandArgument;
long Active = 1;
if (ButtonId !=string.Empty)
{
if (DeleteCheckBox.Checked==true)
{
objdalTransactionEntry.RentSettingsIsActiveUpdate(Convert.ToInt64(ButtonId), Active);
}
}
}
catch (Exception) { }
}
问题是它无法在 C# 代码中找到复选框DeleteCheckBox
的 ID
根据您的代码,我有以下评论:
给你换个 function 名字,很混乱。 它应该是DeleteCheckBox_Changed
或者不应该用于OnCheckedChanged
事件
您的发件人不是LinkButton
它是复选框本身。 因此,您可以使用CheckBox checkBoxThatChanged = (CheckBox)(sender)
访问复选框控件
DeleteCheckBox
并不真正存在。 由于您的中继器,您有多个DeleteCheckBox
,因此您将无法通过这种方式访问它。
如果您确实在使用LinkButton
并且您想要找到一个复选框,那么您应该向链接按钮添加一个值,指示它所引用的表的行并遍历所有复选框控件,直到找到您的目标。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.