我有一个datalist,我有复选框,我在客户端使用jquery选中复选框,根据复选框选择我正在删除项目,很少项目没有被删除,因为在其他一些表中有一个实例,未删除的项目我想显示复选框作为检查和错误消息显示所选项目无法删除。
删除项目后,我收到未删除的项目ID,但如何再次根据该ID复选复选框。
删除btn
foreach (DataListItem dl in dltlist1.Items)
{
if ((((CheckBox)dl.FindControl("Chkbox")).Checked))
{
ImageButton img = (dl.FindControl("btn1") as ImageButton);
string[] str = img.CommandArgument.ToString().Split(';');
Id = Convert.ToInt32(str[0]);
IdList.Add(Id);
}
}
List<Tuple<int, int>> x = objBAL.Delete(IdList);
Tuple<int, int> temp = new Tuple<int, int>(item.Key, 1); // I am getting here non deleted key
删除项目后,我再次绑定了数据列表。
PLZ有人帮我怎么做?
答案 0 :(得分:0)
重新绑定DataList后,您可以遍历DataList项目并将未删除的键与 DataKey 匹配,如果找到匹配项,则可以重新检查复选框。
示例:强>
//here ArrayList contains the ids to match
ArrayList a=new ArrayList();
a.Add(201105);
a.Add(201106);
//loop through the items in the datalist
for (int i = 0; i < DataList1.Items.Count;i++ )
{
//check if the list contains the items
if (a.Contains(Convert.ToInt32(DataList1.DataKeys[i])))
{
(DataList1.Items[i].FindControl("CheckBox1") as CheckBox).Checked = true;
}
}
任何具有.Contains()方法的集合或泛型都是理想的。
希望这会有所帮助。