2011-01-07 129 views
2

這是一個非常簡單的問題,我只是不確定如何完全做到這一點。我想將Button或ImageButton綁定到ASP.NET/C#中的GridView。目前,GridView有兩列,並且綁定到有兩列的DataTable。我想向GridView添加第三列,其中將包含按鈕。將按鈕綁定到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

謝謝,這看起來像一個可行的解決方案。我會在星期一嘗試一下並報告。 – 2011-01-08 20:19:32

1

如果我們正在談論一個總是存在的按鈕,您可以使用ButtonField,或者甚至使用TemplateField併爲模板提供按鈕,並將數據綁定到按鈕(聽起來像您可能希望將數據綁定到按鈕的屬性?)

如果您正在尋找在UI中動態生成按鈕,請點擊RowCreated事件並添加按鈕GridView。您必須在每次加載頁面時都這樣做; GridView將不會記住以編程方式創建的按鈕。

HTH。