我有2个数据网格。两者都有复选框。我有一个嵌套的foreach循环,它从两个数据网格中获取两个被检查人员的DataKeys值。当我运行调试器时,第一个datakey被分配给正确的变量oIdividualID。这工作正常。第二个foreach循环从下一个datagrid获取datakey。这也很好。但是,它没有将它分配给变量oNewParentID。在我的代码的底部,在调试中,我调用的方法正确地保存了oIndividualID的值,但oNewParentID保持 NO 值?我的嵌套foreach循环有问题吗?我不明白。这是我的代码:
protected void imgbtnReassgin_Click(object sender, ImageClickEventArgs e)
{
foreach (GridViewRow row in gvAdminCustomer.Rows)
{
CheckBox cb = (CheckBox)row.FindControl("chkitemSelectorCustomers");
if (cb != null && cb.Checked)
{
int oIndividualID = Convert.ToInt32((gvAdminCustomer.DataKeys[row.RowIndex].Value));
foreach (GridViewRow r in gvReassignCustomers.Rows)
{
CheckBox chkBox = (CheckBox)row.FindControl("chkitemSelectorAllManagersandSalesman");
if (chkBox != null && chkBox.Checked)
{
int oNewParentID = Convert.ToInt32((gvReassignCustomers.DataKeys[r.RowIndex].Value));
Individual ind = new Individual();
ind.ReassignIndividual(oIndividualID, oNewParentID);
}
}
gvReassignCustomers.DataBind();
gvAdminCustomer.DataBind();
}
}
}
答案 0 :(得分:0)
难以理解代码的目的 - 对于管理网格中的每个选中的复选框,您正在重新分配每个选中的重新分配网格。这真的是意图吗?
然后你在管理网格中为每一行运行DataBind()。
因此。
注释掉DataBind() - 你不需要它们,它只是告诉系统将数据重新绑定到网格,这可能会清除用户勾选的复选框。
答案 1 :(得分:0)
不太确定发生了什么,但突然间一切都开始起作用了。问题解决但不确定如何。