Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.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
C# 从文本框填充网格视图,并在每次单击按钮时递归地删除列表值_C#_Asp.net - Fatal编程技术网

C# 从文本框填充网格视图,并在每次单击按钮时递归地删除列表值

C# 从文本框填充网格视图,并在每次单击按钮时递归地删除列表值,c#,asp.net,C#,Asp.net,我想在单击按钮时用文本框和下拉列表值递归填充网格视图。目前它只绑定一次。我是ASP.NET新手。非常感谢您的帮助 protected void btnAdd_Click(object sender, EventArgs e) { DataTable dt = new DataTable(); DataRow dr; dt.Columns.Add("Resource"); dt.Columns.Add("availa

我想在单击按钮时用文本框和下拉列表值递归填充网格视图。目前它只绑定一次。我是ASP.NET新手。非常感谢您的帮助

     protected void btnAdd_Click(object sender, EventArgs e)
    {
        DataTable dt = new DataTable();
        DataRow dr;
        dt.Columns.Add("Resource");
        dt.Columns.Add("available");

        for (int intCnt = 0; intCnt < grd.Rows.Count - 1; intCnt++)
        {
            if (grd.Rows[intCnt].RowType == DataControlRowType.DataRow)
            {

                dr = dt.NewRow();
                dr["Resource"] = grd.Rows[intCnt].Cells[0];
                dr["available"] = grd.Rows[intCnt].Cells[1];

                dt.Rows.Add(dr);
            }
        }
        dr = dt.NewRow();
        dr["Resource"] = ddlResource.SelectedItem.Text;
        dr["available"] = txtavailable.Text;
        dt.Rows.Add(dr);
        grd.DataSource = dt;
        grd.DataBind();
    }
protectedvoidbtnadd\u单击(对象发送者,事件参数e)
{
DataTable dt=新的DataTable();
数据行dr;
dt.列。添加(“资源”);
dt.列。添加(“可用”);
对于(intCnt=0;intCnt
请尝试此功能,希望它能有所帮助

protected void btnAdd_Click(object sender, EventArgs e)
{
    DataTable dt = new DataTable();
    DataRow dr;
    dt.Columns.Add("Resource");
    dt.Columns.Add("available");

    foreach(GridViewRow row in grd.Rows)
    {
        dr = dt.NewRow();
        dr["Resource"] = row.Cells[0].Text;
        dr["available"] =row.Cells[1].Text;
        dt.Rows.Add(dr);
    }
    dr = dt.NewRow(); 
    dr["Resource"] = ddlResource.SelectedItem.Text;
    dr["available"] = txtavailable.Text;
    dt.Rows.Add(dr);
    grd.DataSource = dt;
    grd.DataBind();
}
使用以下代码:

protected void btnAdd_Click(object sender, EventArgs e)
 {
 DataTable dt = new DataTable();
    dt = defineColumn();
    DataRow dr;
    foreach (GridViewRow grow in grdChMedicine.Rows)
    {
        dr = dt.NewRow();
        dr["Diagnosis"] = grow.Cells[1].Text;
        dr["DiagnosisId"] = grow.Cells[2].Text;
        dt.Rows.Add(dr);
    }
    dr = dt.NewRow();

    dr["Diagnosis"] = ddldiagnosis.SelectedItem.ToString();
    dr["DiagnosisId"] = ddldiagnosis.SelectedValue;
    dt.Rows.Add(dr);

    ViewState["ChMedicine"] = dt;
    grdChMedicine.DataSource = dt;
    grdChMedicine.DataBind();

   }


private DataTable defineColumn()
{
    DataTable dt = new DataTable();

    dc = new DataColumn("Diagnosis");
    dt.Columns.Add(dc);

    dc = new DataColumn("DiagnosisId");
    dt.Columns.Add(dc);

    return dt;
}

已成功添加第一行,但将下一行添加到网格时出现此错误指定的参数超出了有效值的范围。@Abfab Ahmed对我使用未赋值变量(dr)时出错的代码段进行了注释