将按钮绑定到GridView
问题描述:
这是一个非常简单的问题,我只是不确定如何完全做到这一点。我想将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>
答
您可以使用模板场像下面,
<TemplateField>
<ItemTemplate>
<asp:ImageButton ImageUrl="image url" CommandName="SomeCommand" CommandArgument='<%# Eval("Id") %>'/>
</ItemTemplate>
</TemplateField>
然后你就可以处理GridView控件的RowCommand事件,并检查e.CommandName来查看要执行的命令,并且您可以获得e.CommandArgument以及可能是行ID,就像我在上面的代码中使用的那样。
答
如果我们正在谈论一个总是存在的按钮,您可以使用ButtonField,或者甚至使用TemplateField并为模板提供按钮,并将数据绑定到按钮(听起来像您可能希望将数据绑定到按钮的属性?)
如果您正在寻找在UI中动态生成按钮,请点击RowCreated事件并添加按钮GridView。您必须在每次加载页面时都这样做; GridView将不会记住以编程方式创建的按钮。
HTH。
谢谢,这看起来像一个可行的解决方案。我会在星期一尝试一下并报告。 – 2011-01-08 20:19:32