【问题标题】:Insert Visible ASP:GridViewRows Into DataTable将可见 ASP:GridViewRows 插入 DataTable
【发布时间】:2018-06-21 06:20:35
【问题描述】:

我根据网格中的复选框隐藏 asp:gridviewrows,如果它们被隐藏,我不想将它们插入到数据表中。我正在尝试下面的语法,但我得到一个调试错误

附加信息:名为“column0”的列已属于此数据表。

这行代码抛出错误datatablefirst.Columns.Add....

我应该如何改变我的语法来消除这个问题?

foreach (GridViewRow row in gridviewmain.Rows)
{
    CheckBox chk = (CheckBox)row.Cells[0].FindControl("checkboxforcode");
    if (chk.Checked == true)
    {
        for (int i = 0; i < gridviewmain.Columns.Count; i++)
        {
            datatablefirst.Columns.Add("column" + i.ToString());
        }
        DataRow dr = datatablefirst.NewRow();
        for (int j = 0; j < gridviewmain.Columns.Count; j++)
        {
            dr["column" + j.ToString()] = row.Cells[j].Text;
        }
        datatablefirst.Rows.Add(dr);
    }
}

【问题讨论】:

    标签: c# asp.net datatable webforms


    【解决方案1】:

    您只想添加不存在的列。这不是每行都完成的。

    bool columnsAdded = false;
    foreach (GridViewRow row in gridviewmain.Rows)
    {
        CheckBox chk = (CheckBox)row.Cells[0].FindControl("checkboxforcode");
        if (chk.Checked == true)
        {
            if (!columnsAdded )
            {
                for (int i = 0; i < gridviewmain.Columns.Count; i++)
                {
                    datatablefirst.Columns.Add("column" + i.ToString());
                }
                columnsAdded = true;
            }
            DataRow dr = datatablefirst.NewRow();
            for (int j = 0; j < gridviewmain.Columns.Count; j++)
            {
                dr["column" + j.ToString()] = row.Cells[j].Text;
            }
            datatablefirst.Rows.Add(dr);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2023-03-29
      • 2011-08-10
      • 1970-01-01
      • 1970-01-01
      • 2015-02-19
      • 2011-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多