2011-01-07 113 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。