C#检查是否选中复选框(可能是用户选中并取消选中相同的复选框)

时间:2017-03-01 21:45:40

标签: c#

我有来自asp.net的脚本,它设置了checkBox的值,并且可以用户点击并取消选中相同的复选框,然后我会编程检查2次是否检查然后将其删除所选行。我遇到的问题,当我选中复选框并取消选中相同的复选框时,我不想删除它,但它会删除,我的代码请与我做什么?

protected void btnDelete_Click(object sender, EventArgs e)
{
    string[] Checked = hfLegalRecords.Value.Split('|');

    for (int i = 0; i < Checked.Length - 1; ++i)
    {
        string[] value = Checked[i].Split(',');
        string checkbox = value[0];
        string ClientCode = value[1];
        string DebtorNumber = value[2];
        if (checkbox.Equals("true"))
            for (int j = 0; j < checkbox[i]; ++j)
            {
                LegalEvents.RemoveSelectCheckBox(ClientCode, DebtorNumber);
            }
    }

    LoadLegalRecords();
}

2 个答案:

答案 0 :(得分:0)

不知道你在做什么,但StringBuffer是一个字符串。

start = (9, 0)
end = (17,0)

now = datetime.datetime.utcnow().timetuple()[3:5] # gives you (hour,min)
print start <= now <= end

这里你只是为字符串中的每个字符调用checkbox[i]

实际上,由于for (int j = 0; j < checkbox[i]; ++j) { LegalEvents.RemoveSelectCheckBox(ClientCode, DebtorNumber); } 无效,此代码甚至无法编译。

答案 1 :(得分:0)

我假设您正在使用网格/表格。 您是否使用javascript来跟踪您的CHECK?或者每个CHECK都是回发?

在checkBox中使用Onclick javascript函数,如果用户检查它。使用&#34; ClientCode,DebtorNumber,check&#34;更新hfLegalRecords字符串如果他UNCHECK相同的添加&#34; ClientCode,DebtorNumber,取消选中&#34;现在当用户点击DELETE按钮

阅读hfLegalRecords.Value.Split(&#39; |&#39;);并将它们存储在单独的DataTables / Arrays中(如果选中则移至表1;如果未选中则移至Table2)

假设您没有重复的ClientCodes,请编写一个小代码来检查每个ClientCode的两个表中的记录数。如果你有CientCode1 Checked。您有1个条目表1.如果您有ClientCode2已选中和未选中,则您在两个表中都有1个条目。如果ClientCode3是Checked,Unchecked和Checked,那么表1中有2个条目,表2中有1个条目。

无论哪种方式,你的逻辑应该是&#34;如果表1中的条目&gt;表2中的条目删除了ClientCode&#34;否则不要删除。

当您使用这种简单的编码结构在屏幕上有更多的数字记录时,这将变得复杂。我个人建议使用Asp.Net网格控件。因此,当用户单击“删除”按钮时,您可以获取所有记录并验证已选中/未选中。这将节省大量时间和您的编码工作。