SP07 WebPartのC#クラスライブラリの動的追加行を使用してgridViewが作成されましたGridViewのASP.NET動的追加行が2行以上追加されていない
私の問題は、2つの以上の行...
を追加していない。これは、作成]ボタンである私は(作成)ボタンをクリックし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();
あなたのコードが何をしているのか分かりませんが、 'dt.Rows.Add(drCurrentRow);'を 'for'ループ本体に移動することを検討してください。 –
私はこのチュートリアルに従います.. http://geekswithblogs.net/dotNETvinz/archive/2009/06/04/adding-dynamic-rows-in-gridview-with-textboxes.aspx – Gohyu
"for"ループは起動しません3回目の "作成"ボタンをクリックします。あなたの条件を見てください: 'for(int i = 1; i <= dt.Rows.Count; i ++)'。このループによれば、 'i <= dt.Rows.Count'のときに終了し、' dt.Rows.Count = 2'のために3回目のクリックでループするはずです。 –