asp.net 4.0 フォーム。
テーブル ID キーにリンクされたボタンを使用して、Gridview を動的に作成する必要があります。
そこで、Gridview をセットアップし、列の追加を開始します。
private void SetupGV()
{
try
{ //0
TemplateField tf = new TemplateField();
tf.HeaderText = "X";
tf.ItemTemplate = new AddToItemTemplate();
GV.Columns.Add(tf);
//1
BoundField b = new BoundField();
b.DataField = "FullName";
b.HeaderText = @"Staff / Role";
GV.Columns.Add(b);
....
次に、ITemplate AddToItemTemplate を作成します。
public class AddToItemTemplate : ITemplate
{
public AddToItemTemplate(){}
public void InstantiateIn(Control container)
{
ImageButton ib = new ImageButton();
ib.ImageUrl = "~/Content/CIDimg/action4.gif";
ib.Command += ib_Command;
ib.CommandName = "delete";
container.Controls.Add(ib);
}
void ib_Command(object sender, CommandEventArgs e)
{
string s = e.CommandArgument.ToString();
}
#endregion
}
GV_RowDataBound で ID を収集し、画像ボタン コマンドの引数に問題なく設定します。
すべて正常に動作しますが、メソッドib_Commandは ITemplate の一部であるため静的です。ページ コントロールにもページ インスタンス変数にもアクセスできません。
グリッドビューが ASPX マークアップ ファイルで作成されるときに「oncommand」タグで行われるように、ボタン (ib.command +=) をページ メソッドのいずれかにリンクする方法はありますか?