2016-04-20 11 views
1

SP07 WebPartのC#クラスライブラリの動的追加行を使用してgridViewが作成されましたGridViewのASP.NET動的追加行が2行以上追加されていない

私の問題は、2つの以上の行...

enter image description here

を追加していない。これは、作成]ボタンである私は(作成)ボタンをクリックしWENです:

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"ループは起動しません3回目の "作成"ボタンをクリックします。あなたの条件を見てください: 'for(int i = 1; i <= dt.Rows.Count; i ++)'。このループによれば、 'i <= dt.Rows.Count'のときに終了し、' dt.Rows.Count = 2'のために3回目のクリックでループするはずです。 –

答えて

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

関連する問題