2011-01-07 41 views
2

これは非常に単純な質問です。私はそれを正確に行う方法がわかりません。私は、ボタンまたはおそらくImageButtonをASP.NET/C#のGridViewにバインドしたいと思います。現在、GridViewには2つの列があり、2つの列を持つDataTableにバインドされています。 GridViewに3番目の列を追加します。これにはボタンが含まれます。ボタンをGridViewにバインドする

私はGridViewがButtonFieldを持っていることを知っていますが、私が望むことをするためにそれを使用する方法についてはあまりよく分かりません。これらのボタンを動的に生成してGridViewに追加したいと思います。ここで

は私のGridViewが今どのように見えるかです:

<asp:GridView 
    ID="GridView1" 
    Runat="server"> 
    <Columns> 
     <asp:HyperLinkField 
      HeaderText="Display Name" 
      DataNavigateUrlFields="DISPNAME" 
      DataNavigateUrlFormatString="ViewItem.aspx" 
      DataTextField="DISPNAME"> 
      <ItemStyle Width="70%" /> 
     </asp:HyperLinkField> 
     <asp:BoundField 
      DataField="TypeDisp" 
      HeaderText="Type"> 
      <ItemStyle Width="20%" /> 
     </asp:BoundField> 
    </Columns> 
</asp:GridView> 

答えて

6

あなたは

<TemplateField> 
    <ItemTemplate> 
     <asp:ImageButton ImageUrl="image url" CommandName="SomeCommand" CommandArgument='<%# Eval("Id") %>'/> 
    </ItemTemplate> 
</TemplateField> 

次にあなたがGridViewコントロールのRowCommandイベントを処理し、確認することができ、次のようなテンプレートフィールドを使用することができますe.CommandNameを実行するとどのコマンドが実行されるのかを確認し、e.CommandArgumentも取得できますが、これは上記のコードで使用したような行IDである可能性があります。

+0

ありがとう、これは実行可能なソリューションのように見えます。私は月曜日にそれを試し、報告して戻します。 –

+0

幸運...... –

+0

それは働いた。再度、感謝します! –

1

常に存在するボタンを話している場合は、ButtonFieldを使用するか、TemplateFieldを使用してボタンをテンプレートに指定して、データをボタンにバインドすることができます(データをボタンの属性?)

UIでボタンを動的に生成する場合は、RowCreatedイベントをタップし、GridViewボタンを追加します。これはすべてのページの読み込み時に行う必要があります。 GridViewはプログラムで作成されたボタンを覚えていません。

HTH。

関連する問題