首页 > 解决方案 > 网格视图以动态添加行,但在插入时获取空白值

问题描述

最近我更改了我的 GridView,以便它能够动态添加行。问题是,当我插入数据时,我首先得到的是空白值。

我无法获取 label.text 的详细信息,但能够第一次获取文本框的值。当循环继续时,我从标签中获得 1 行值,从文本框中获得 2 行值。

GridViewRow row = new GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Normal);

    TableHeaderCell cell = new TableHeaderCell();
    cell.Text = "Details";
    cell.ColumnSpan = 3;
    row.Controls.Add(cell);


    cell = new TableHeaderCell();
    cell.Text = "Year 2018";
    cell.ColumnSpan = 4;
    row.Controls.Add(cell);

    cell = new TableHeaderCell();
    cell.ColumnSpan = 4;
    cell.Text = "Year 2019";
    row.Controls.Add(cell);

     cell = new TableHeaderCell();
    cell.Text = "Others";
    cell.ColumnSpan = 3;
    row.Controls.Add(cell);

这是提交代码..

Label CenterId = (Label)row.FindControl("CenterId") as Label;
              string CenterId_no = Convert.ToString(CenterId.Text);


          //  Label lbl_lastyear_beforedate = (Label)row.FindControl("lbl_lastyear_beforedate") as Label;

      //  float  PY_Bdte = float.Parse(lbl_lastyear_beforedate.Text);


            TextBox txt_lastyearonDate = (TextBox)row.FindControl("txt_lastyearonDate") as TextBox;

            float py_ondte = float.Parse(txt_lastyearonDate.Text);

标签: c#asp.net

解决方案


我刚刚通过为绑定时的DataRow所有列添加一个来解决这个问题:GridView

DataRow dr = dt.NewRow();
dr["col1"] = 0;
dr["col2"] = 0;
dt.Rows.InsertAt(dr, 0);

在提交代码时:

if (row.RowIndex>0)
{
    // getting the all values and inserted..
}

推荐阅读