C# 从gridview C中的复选框构建数组#
我正在使用gridview构建一个流程,允许用户提供一个编辑并将其保存到多个记录中。到目前为止,我已经规划到了这一点,但不确定最好的方法是如何构建一个记录ID数组以包含在此编辑中 这就是我现在正在讨论的问题C# 从gridview C中的复选框构建数组#,c#,asp.net,arrays,gridview,checkbox,C#,Asp.net,Arrays,Gridview,Checkbox,我正在使用gridview构建一个流程,允许用户提供一个编辑并将其保存到多个记录中。到目前为止,我已经规划到了这一点,但不确定最好的方法是如何构建一个记录ID数组以包含在此编辑中 这就是我现在正在讨论的问题 向my gridview添加一个模板字段,该字段提供一个复选框(完成!) 提供一个包含网格中所有列标题的DropDownList,并将源表列名与DDL中的条目值相关联 在DDL上选择一个项目后,它将打开一个编辑窗口,编辑DDL中所选列的内容 “保存”后,代码隐藏将在数组中旋转,将相同的值写入
- 考虑到这一点,我相信我会捕获焦点列数组中第一条记录中的数据,以便提供编辑列中现有内容的方法
protected void ColumnSelectDDL_TextChanged(object sender, EventArgs e)
{
foreach (GridViewRow row in ActVulListGV.Rows)
{
var ri = -1;
if (row.RowType == DataControlRowType.DataRow)
{
CheckBox chk = (row.Cells[0].FindControl("chkid") as CheckBox);
if (chk.Checked)
{
// Create and append your array here
var recnumbers = new int[0];
++ri;
{
Label REC = (row.Cells[1].FindControl("RecID") as Label);
recnumbers[ri] = Convert.ToInt32(REC.Text);
}
recnumbers.ToList().ForEach(i => Console.WriteLine(i.ToString()));
}
}
}
}
您可以在Rowdatabound(选项1)时或Gridview绑定后,单击Save按钮创建网格行循环(选项2),绑定复选框数组 备选案文1:
protected void OnRowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow) {
CheckBox chk = (row.Cells[0].FindControl("chkid") as CheckBox);
if (chk.Checked)
{
//Create the hiddenfield or viewstate which you can access page level.
}
}
}
备选案文2:
foreach (GridViewRow row in GridView1.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
CheckBox chk = (row.Cells[0].FindControl("chkid") as CheckBox);
if (chk.Checked)
{
// Create and append your array here
}
}
}
希望这有帮助。您可以在Rowdatabound(选项1)时绑定复选框数组,或者在Gridview绑定后单击保存按钮创建网格行循环(选项2) 备选案文1:
protected void OnRowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow) {
CheckBox chk = (row.Cells[0].FindControl("chkid") as CheckBox);
if (chk.Checked)
{
//Create the hiddenfield or viewstate which you can access page level.
}
}
}
备选案文2:
foreach (GridViewRow row in GridView1.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
CheckBox chk = (row.Cells[0].FindControl("chkid") as CheckBox);
if (chk.Checked)
{
// Create and append your array here
}
}
}
希望这能有所帮助。我认为选项2对我来说更有意义。我会试一试,让你知道!谢谢PJS@KenCarter:提供的解决方案是否适用于您?我正在使用您提供的第二个示例,并在“if(chk.Checked)”行中遇到空引用错误。我正要去吃午饭,但会回来试着弄明白为什么我会在这里得到一个空值。使用您的示例,但当然已将GridView1引用更改为我的GridView ID ActVulListGV。我添加了一个代码块,说明了我在代码背后添加的内容,称为UPDATE 04/13/17 1PM Central USPJS,我将“CheckBox chk=(row.Cells[0].FindControl(“chkid”)替换为CheckBox);”和“if(chk.Checked)”。。。使用“if(((CheckBox)row.FindControl(“chkid”).Checked)”,但仍然返回空引用错误。不知道为什么…我认为选择2对我来说更有意义。我会试一试,让你知道!谢谢PJS@KenCarter:提供的解决方案是否适用于您?我正在使用您提供的第二个示例,并在“if(chk.Checked)”行中遇到空引用错误。我正要去吃午饭,但会回来试着弄明白为什么我会在这里得到一个空值。使用您的示例,但当然已将GridView1引用更改为我的GridView ID ActVulListGV。我添加了一个代码块,说明了我在代码背后添加的内容,称为UPDATE 04/13/17 1PM Central USPJS,我将“CheckBox chk=(row.Cells[0].FindControl(“chkid”)替换为CheckBox);”和“if(chk.Checked)”。。。使用“if(((CheckBox)row.FindControl(“chkid”).Checked)”,但仍然返回空引用错误。不知道为什么。。。