2015-09-28 72 views
0

我想在asp.net的gridview中显示16个空行。我在网格外面有一个按钮和文本框,点击一个按钮后,我必须将文本框中的数据插入到网格中,但问题是插入16行后的数据。数据如何首先插入空行。 我绑定的数据源与空,但让我创建页面加载事件的行网格是不可见..如何将文本框中的数据放入网格的空行

protected void Page_Load(object sender, EventArgs e) 
     { 
      if (!IsPostBack) 
      { 
       DataTable dtSource = new DataTable(); 
        dtSource.Columns.Add("DateTime"); 
        dtSource.Columns.Add("Detail"); 
        dtSource.Columns.Add("Status"); 
        dtSource.Columns.Add("Cancel"); 
        for (int i = 0; i <= 15; i++) 
        { 
         dtSource.Rows.Add("", " ", " ", " "); 
        } 
        ViewState["dtSource"] = dtSource; 
        gridItem.DataSource = dtSource; 
        gridItem.DataBind(); 

      } 
     } 

这里是按钮

protected void btnAdd(object sender, EventArgs e) 
     { 
      DataTable dtSource = ViewState["dtSource"] as DataTable;   
      DataRow dr = dtSource.NewRow(); 
      dtSource.Rows.Add(DateTime.Now, itemDetail, "", ""); 
      gridItem.DataSource = dtSource; 
      gridItem.DataBind(); 
      ViewState["dtSource"] = dtSource; 
     } 

回答

0

那是因为你正在创建的代码一个新的行,并像下面一样添加它

DataRow dr = dtSource.NewRow(); 

添加这16行没有意义。你应该做点像

protected void Page_Load(object sender, EventArgs e) 
     { 
      if (!IsPostBack) 
      { 
       DataTable dtSource = new DataTable(); 
        dtSource.Columns.Add("DateTime"); 
        dtSource.Columns.Add("Detail"); 
        dtSource.Columns.Add("Status"); 
        dtSource.Columns.Add("Cancel"); 
        ViewState["dtSource"] = dtSource; 
        gridItem.DataSource = dtSource; 
        gridItem.DataBind(); 

      } 
     } 


protected void btnAdd(object sender, EventArgs e) 
     { 
      DataTable dtSource = ViewState["dtSource"] as DataTable;   
      DataRow dr = dtSource.NewRow(); 
      dtSource.Rows.Add(DateTime.Now, itemDetail, "", ""); 
      gridItem.DataSource = dtSource; 
      gridItem.DataBind(); 
      ViewState["dtSource"] = dtSource; 
     } 
+0

但是要显示空行是需求。请你给我一些其他的想法来显示空行。 如果我使用urload的页面加载代码,那么我的网格是隐藏的。 – Farrukh

相关问题