我有来自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();
}
答案 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网格控件。因此,当用户单击“删除”按钮时,您可以获取所有记录并验证已选中/未选中。这将节省大量时间和您的编码工作。