GridViewのすべてのセルにTextBoxを使って行と列を動的に追加したいと思います。私はこれを成功させました。しかし、問題は、ボタンをクリックするとTextBoxの値を読み取ることができないということです。C#を使用してグリッドビュー内のダイナミック追加テキストボックスの値を読み取る方法?
<asp:GridView runat="server" ID="gv" OnRowDataBound="gv_OnRowDataBound"></asp:GridView>
動的にグリッド内の行と列を追加します。ここでは
protected void btnGenerate_OnClick(object sender, EventArgs e)
{
int rowsCount = Convert.ToInt32(tbxRow.Text);
int colsCount = Convert.ToInt32(tbxCol.Text);
DataTable dt=new DataTable();
for(int col=0;col<colsCount;col++)
{
dt.Columns.Add("D-" + col, typeof (int));
}
for (int i = 0; i < rowsCount; i++)
{
DataRow dr = dt.NewRow();
dt.Rows.Add(dr);
}
gv.DataSource = dt;
gv.DataBind();
}
は、GridViewコントロールにテキストボックスを追加するための私のコードです:
protected void gv_OnRowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
for (int i = 0; i < e.Row.Cells.Count; i++)
{
TextBox txt = new TextBox();
txt.ID = "tbx" + i;
e.Row.Cells[i].Controls.Add(txt);
}
}
}
私はの値を取得するには、これを試してみましたTextBoxが、常にnullを表示:
protected void btnSave_OnClick(object sender, EventArgs e)
{
foreach (GridViewRow row in gv.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
for (int i = 0; i < row.Cells.Count; i++)
{
TextBox tb = (TextBox) row.Cells[i].FindControl("tbx" + i);
}
}
}
}
サンプルコードまたはサンプルを@Sarowar Hossenとして提供できますか? – Deba
これはjqueryコードの単なる例です。私はあなたが残りを知っていると思うwebmethodを追加する。 –