繁体   English   中英

CheckBox 在 ASP.NET Webforms 中的中继器内部不起作用

[英]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

根据您的代码,我有以下评论:

  1. 给你换个 function 名字,很混乱。 它应该是DeleteCheckBox_Changed或者不应该用于OnCheckedChanged事件

  2. 您的发件人不是LinkButton它是复选框本身。 因此,您可以使用CheckBox checkBoxThatChanged = (CheckBox)(sender)访问复选框控件

  3. DeleteCheckBox并不真正存在。 由于您的中继器,您有多个DeleteCheckBox ,因此您将无法通过这种方式访问它。

  4. 如果您确实在使用LinkButton并且您想要找到一个复选框,那么您应该向链接按钮添加一个值,指示它所引用的表的行并遍历所有复选框控件,直到找到您的目标。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM