我正在使用gridview构建一个流程,允许用户提供一个编辑并将其保存到多个记录中。到目前为止,我已经达到了这一点,但不确定如何构建一个包含在此编辑中的记录ID数组的最佳方法。
这就是我现在正在踢的......
为了理解我在这里修补的内容,我提供了GridView左侧的屏幕截图:
关于从CheckBoxes构建数组的想法?
更新04/13/17下午1点美国中部
添加我添加的代码,从下面的示例#2的CheckBox中接近数组的数量......
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()));
}
}
}
}
答案 0 :(得分:0)
您可以在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
}
}
}
希望这有帮助。