2017-04-07 12 views
0

検索結果に空白が表示されるような単純な質問です。GridView AutGenerateColumnをRowCommandイベントを発生させるLinkBut​​tonにします。

は、私はこれは、列 "MYCOLUMN" を生成AutoGeneratingColumns=True

あるGridViewコントロールを持っています。この列に、特定のCommandNmaeを持つGridViewのRowCommandイベントとCommandArgumentのセル値を発生させるクリック可能なLinkBut​​tonの値を設定します。

カスタムItemTemplateを使用せずにこれを実行しようとしていますが、その方法を知っています。私は説明したように、GridViewで自動生成された列を実際に変更できることを願っています。

ティア

答えて

0

これは、GridViewコントロールのOnRowDataBoundイベントで行うことができます。

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    //check if the current row is a datarow 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     ///create a new linkbutton 
     LinkButton button = new LinkButton(); 
     button.Text = "LinkButton"; 
     button.CommandArgument = "MyArgs"; 

     //assign a command to the button 
     button.Command += Button_Command; 

     //add the button to cell x 
     e.Row.Cells[3].Controls.Add(button); 
    } 
} 

あなたが動的にコントロールを追加しているので、GridViewコントロールのバインディングがIsPostBackチェック内にラップしないでください。あなたは普通に何かするでしょう。

+0

GridViewが(以前の画面で)ボタンをクリックしてもバインドされている場合、どのように処理しますか? – Nugs

+0

セッションのように、クリックをどこかに "保存"する必要があります。したがって、ページがリロードされると、ボタンをクリックするのと同じコードを実行できます。 – VDWWD

関連する問題