2016-04-20 191 views
1

我创建了GridView,并在C#类库中为动态添加行,用于SP07 WebPartASP.NET在GridView中动态添加行不添加超过2行

我的问题是闻一点击按钮(创建)未加入超过2行..

enter image description here

这是创建按钮

void addBtn_Click(object sender, EventArgs e) 
    { 
     AddNewRowFun(); 
    } 

我AddNewRowFun()方法:

private void AddNewRowFun() 
    { 
     int rowIndex = 0; 
     if (ViewState["Curtbl"] != null) 
     { 
      DataTable dt = (DataTable)ViewState["Curtbl"]; 
      DataRow drCurrentRow = null; 
      if (dt.Rows.Count > 0) 
      { 
       for (int i = 1; i <= dt.Rows.Count; i++) 
       { 
        TextBox txt1 = (TextBox)myGrid.Rows[rowIndex].Cells[1].FindControl("txt1"); 
        DateTimeControl dt1 = (DateTimeControl)myGrid.Rows[rowIndex].Cells[2].FindControl("dt1"); 
        DateTimeControl dt2 = (DateTimeControl)myGrid.Rows[rowIndex].Cells[3].FindControl("dt2"); 
        TextBox txt2 = (TextBox)myGrid.Rows[rowIndex].Cells[4].FindControl("txt2"); 
        TextBox txt3 = (TextBox)myGrid.Rows[rowIndex].Cells[5].FindControl("txt3"); 

        drCurrentRow = dt.NewRow(); 
        drCurrentRow["rowid"] = i + 1; 
        dt.Rows[i - 1]["txt1"] = txt1.Text; 
        dt.Rows[i - 1]["dt1"] = dt1.SelectedDate; 
        dt.Rows[i - 1]["dt2"] = dt2.SelectedDate; 
        dt.Rows[i - 1]["txt2"] = txt2.Text; 
        dt.Rows[i - 1]["txt3"] = txt3.Text; 
        rowIndex++; 
       } 
       dt.Rows.Add(drCurrentRow); 
       ViewState["Curtbl"] = dt; 
       myGrid.DataSource = dt; 
       myGrid.DataBind(); 
      } 
     } 
     else 
     { 
      //Response.Write("ViewState Value is Null"); 
     } 
     SetOldData(); 
+0

我不知道你的代码到底在做什么,但考虑将'dt.Rows.Add(drCurrentRow);'移到'for'循环体中。 –

+0

我按照这个教程.. http://geekswithblogs.net/dotNETvinz/archive/2009/06/04/adding-dynamic-rows-in-gridview-with-textboxes.aspx – Gohyu

+1

你的“for”循环不会触发第三次点击“创建”按钮。请看你的条件:'for(int i = 1; i <= dt.Rows.Count; i ++)'。根据这个循环,当'i <= dt.Rows.Count'时应该结束,并且它在第三个按钮点击,因为'dt.Rows.Count = 2'。 –

回答

2

根据你对最多5行评论,请如下修改方法:

private void AddNewRowFun() 
{ 
    if (dt.Rows.Count < 6) 
    { 
     [all your code here] 
    } 
} 

希望这解决方案将是对你有帮助。

+0

添加2行以上的解决方案? – Gohyu

+0

请试试这个:'for(int i = dt.Rows.Count; i <= dt.Rows.Count + 1; i ++)' –

+0

现在我试试.. – Gohyu