Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 从gridview获取多行数据键_Asp.net_Datagridview_Foreach_Datakey - Fatal编程技术网

Asp.net 从gridview获取多行数据键

Asp.net 从gridview获取多行数据键,asp.net,datagridview,foreach,datakey,Asp.net,Datagridview,Foreach,Datakey,目前,我有一个按钮点击事件,它从Datagrid中的一行获取DataKey(通过复选框),并将其分配给一个INT变量,以更新DataSSE中的一个个体。当我只选中1个复选框并运行更新时,一切正常。但是,我需要用户有选择所有复选框的选项,并采取所有这些数据键,并将其分配给同一个变量 INT oNewParentID 就像我说的,当只选中1个复选框时,evrything工作正常。我想我是在问如何获得Uknown数量的Datakeys或所有复选框选择的所有Datakeys,并将它们存储在上面的变量中

目前,我有一个按钮点击事件,它从Datagrid中的一行获取DataKey(通过复选框),并将其分配给一个INT变量,以更新DataSSE中的一个个体。当我只选中1个复选框并运行更新时,一切正常。但是,我需要用户有选择所有复选框的选项,并采取所有这些数据键,并将其分配给同一个变量

INT oNewParentID
就像我说的,当只选中1个复选框时,evrything工作正常。我想我是在问如何获得Uknown数量的Datakeys或所有复选框选择的所有Datakeys,并将它们存储在上面的变量中,以便为所有选择的个人运行更新。这是迄今为止我的按钮单击事件,它适用于选中的1个复选框:

    protected void imgbtnReassgin_Click(object sender, ImageClickEventArgs e)
{
    foreach (GridViewRow row in gvSalesmanCustomers.Rows)
    {
        CheckBox cb = (CheckBox)row.FindControl("chkSalesCustSelector");
        if (cb != null && cb.Checked)
        {


            int oIndividualID = Convert.ToInt32((gvSalesmanCustomers.DataKeys[row.RowIndex].Value));



            foreach (GridViewRow r in gvSalesmanByManager.Rows)
            {
                CheckBox chkBox = (CheckBox)r.FindControl("chkManagerSalesSelector");
                if (chkBox != null && chkBox.Checked)
                {

                    int oNewParentID = Convert.ToInt32((gvSalesmanByManager.DataKeys[r.RowIndex].Value));



                    Individual ind = new Individual();
                    ind.ReassignIndividual(oIndividualID, oNewParentID);

                    chkBox.Checked = false;
                    cb.Checked = false;

                }


            }



        }


    }

}
她是我的更新存储过程:

CREATE DEFINER=`root`@`%` PROCEDURE `reassign_Individual`(
IN oIndividualID     int(11),
IN oNewParentID         int(11)
)
BEGIN
Update intelliair.individual
set ParentID = oNewParentID
Where IndividualID = oIndividualID;END
重新组织代码。 在第二个
foreach
中添加了中断,假设没有理由多次
reasignenvirtual
将其分配给最后选择的经理

protected void imgbtnReassgin_Click(object sender, ImageClickEventArgs e)
{
    List<int> ids = new List<int>();
    foreach (GridViewRow row in gvSalesmanCustomers.Rows)
    {
       CheckBox cb = (CheckBox)row.FindControl("chkSalesCustSelector");
       if (cb != null && cb.Checked)
       {
            int oIndividualID = Convert.ToInt32((gvSalesmanCustomers.DataKeys[row.RowIndex].Value));
            ids.Add(oIndividualID);

            cb.Checked = false;

        }
    }

    int oNewParentID = 0;
    foreach (GridViewRow r in gvSalesmanByManager.Rows)
    {
        CheckBox chkBox = (CheckBox)r.FindControl("chkManagerSalesSelector");
        if (chkBox != null && chkBox.Checked)
        {
             oNewParentID = Convert.ToInt32((gvSalesmanByManager.DataKeys[r.RowIndex].Value));
             chkBox.Checked = false;
             break; //no reason to go with the same logic to next records
             //if you want to uncheck all the checkboxes continue with specific code just for that purpose
        }
    } 


   if (ids.Count > 0 && oNewParentID > 0)
        foreach(var id in ids)
        {
            Individual ind = new Individual();
            ind.ReassignIndividual(id, oNewParentID);
        }

}
protectedvoid imgbtnresagin\u单击(对象发送方,图像单击事件参数e)
{
列表ID=新列表();
foreach(gvSalesmanCustomers.Rows中的GridViewRow行)
{
复选框cb=(复选框)row.FindControl(“chkSalesCustSelector”);
如果(cb!=null&&cb.Checked)
{
int-oIndividualID=Convert.ToInt32((gvSalesmanCustomers.DataKeys[row.RowIndex].Value));
id.Add(oIndividualID);
cb.Checked=假;
}
}
int-oNewParentID=0;
foreach(gvSalesmanByManager.Rows中的GridViewRow r)
{
复选框chkBox=(复选框)r.FindControl(“chkmanagersalessector”);
if(chkBox!=null&&chkBox.Checked)
{
oNewParentID=Convert.ToInt32((gvSalesmanByManager.DataKeys[r.RowIndex].Value));
chkBox.Checked=false;
break;//没有理由对下一条记录使用相同的逻辑
//如果要取消选中所有复选框,请继续使用特定代码以实现此目的
}
} 
如果(ids.Count>0&&oNewParentID>0)
foreach(id中的变量id)
{
个体ind=新个体();
ind.ReassignIndividual(id,oNewParentID);
}
}
重新组织代码。 在第二个
foreach
中添加了中断,假设没有理由多次
reasignenvirtual
将其分配给最后选择的经理

protected void imgbtnReassgin_Click(object sender, ImageClickEventArgs e)
{
    List<int> ids = new List<int>();
    foreach (GridViewRow row in gvSalesmanCustomers.Rows)
    {
       CheckBox cb = (CheckBox)row.FindControl("chkSalesCustSelector");
       if (cb != null && cb.Checked)
       {
            int oIndividualID = Convert.ToInt32((gvSalesmanCustomers.DataKeys[row.RowIndex].Value));
            ids.Add(oIndividualID);

            cb.Checked = false;

        }
    }

    int oNewParentID = 0;
    foreach (GridViewRow r in gvSalesmanByManager.Rows)
    {
        CheckBox chkBox = (CheckBox)r.FindControl("chkManagerSalesSelector");
        if (chkBox != null && chkBox.Checked)
        {
             oNewParentID = Convert.ToInt32((gvSalesmanByManager.DataKeys[r.RowIndex].Value));
             chkBox.Checked = false;
             break; //no reason to go with the same logic to next records
             //if you want to uncheck all the checkboxes continue with specific code just for that purpose
        }
    } 


   if (ids.Count > 0 && oNewParentID > 0)
        foreach(var id in ids)
        {
            Individual ind = new Individual();
            ind.ReassignIndividual(id, oNewParentID);
        }

}
protectedvoid imgbtnresagin\u单击(对象发送方,图像单击事件参数e)
{
列表ID=新列表();
foreach(gvSalesmanCustomers.Rows中的GridViewRow行)
{
复选框cb=(复选框)row.FindControl(“chkSalesCustSelector”);
如果(cb!=null&&cb.Checked)
{
int-oIndividualID=Convert.ToInt32((gvSalesmanCustomers.DataKeys[row.RowIndex].Value));
id.Add(oIndividualID);
cb.Checked=假;
}
}
int-oNewParentID=0;
foreach(gvSalesmanByManager.Rows中的GridViewRow r)
{
复选框chkBox=(复选框)r.FindControl(“chkmanagersalessector”);
if(chkBox!=null&&chkBox.Checked)
{
oNewParentID=Convert.ToInt32((gvSalesmanByManager.DataKeys[r.RowIndex].Value));
chkBox.Checked=false;
break;//没有理由对下一条记录使用相同的逻辑
//如果要取消选中所有复选框,请继续使用特定代码以实现此目的
}
} 
如果(ids.Count>0&&oNewParentID>0)
foreach(id中的变量id)
{
个体ind=新个体();
ind.ReassignIndividual(id,oNewParentID);
}
}