ダイナミックに作成されたリンクボタンのどれかをクリックすると、選択したリンクボタンの列インデックスを動的に見つけることができます。すべてのボタンは動的に作成され、行と列もグリッドビューで動的に作成されます。関連リンクボタンをクリックすると、gridviewの個々のセルを削除する必要があります。列と行インデックスを見つける必要があるように、このスクリーンショットは問題のアイデアを示します。関連するセルボタンをクリックすると、一度にgridviewの単一セルを削除する方法
このコードは、列が固定されていない場合に動的にリンクボタンを作成するためのコードです。グリッドビューの関連するセルの削除ボタンをクリックすると、単一セルを削除する必要があります。
protected void gv_TT_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
e.Row.Cells[2].Visible = false;
e.Row.Cells[1].Attributes.Add("colspan", "2");
}
int index = e.Row.RowIndex;
int k = 0;
GVdata = (DataTable)ViewState["GVdata"];
GridViewTable = (DataTable)ViewState["GridViewTable"];
if (e.Row.RowType == DataControlRowType.DataRow)
{
for (int i = 0; i < GVdata.Rows.Count; i++)
{
// ADD LINK BUTTON IF row.text != Empty(Blank)
if (e.Row.Cells[i + 3].ToString() != " ")
{
if (e.Row.Cells[i + 3].ToString() != " ")
{
if (e.Row.Cells[i + 3].ToString() != string.Empty)
{
Label txt = new Label();
LinkButton lb1 = new LinkButton();
lb1.ID = k + "_" + (i + 3) + "Btn1";
lb1.Text = " Update ";
lb1.ForeColor = System.Drawing.Color.Blue;
LinkButton lb2 = new LinkButton();
lb2.ID = k + "_" + (i + 3) + "Btn2";
lb2.Text = " Delete ";
lb2.ForeColor = System.Drawing.Color.Red;
lb1.CausesValidation = false;
lb1.Click += new EventHandler(Update_Click);
lb2.CausesValidation = false;
lb2.Click += new EventHandler(Delete_Click);
txt.Text = GridViewTable.Rows[index][i + 3].ToString();
e.Row.Cells[i + 3].Controls.Add(txt);
e.Row.Cells[i + 3].Controls.Add(lb1);
e.Row.Cells[i + 3].Controls.Add(lb2);
}
}
}
}
k++;
}
}
Click here for Screen Shot image output of Sample Code enter image description here