嵌套的Foreach循环无法正常工作?

时间:2012-03-02 15:13:12

标签: asp.net loops datagridview foreach

我有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();
        }
    }
}

2 个答案:

答案 0 :(得分:0)

难以理解代码的目的 - 对于管理网格中的每个选中的复选框,您正在重新分配每个选中的重新分配网格。这真的是意图吗?

然后你在管理网格中为每一行运行DataBind()。

因此。

注释掉DataBind() - 你不需要它们,它只是告诉系统将数据重新绑定到网格,这可能会清除用户勾选的复选框。

答案 1 :(得分:0)

不太确定发生了什么,但突然间一切都开始起作用了。问题解决但不确定如何。