将Button绑定到GridView

时间:2011-01-07 20:49:10

标签: c# asp.net gridview button

这是一个非常简单的问题,我只是不确定如何做到这一点。我想将一个Button或者ImageButton绑定到ASP.NET / C#中的GridView。目前,GridView有两列,并绑定到一个包含两列的DataTable。我想在GridView中添加第三列,其中包括Button。

我知道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>

2 个答案:

答案 0 :(得分:6)

您可以使用以下模板字段

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

然后你可以处理GridView的RowCommand事件并检查e.CommandName以查看要执行的命令,你也可以获得e.CommandArgument,这可能是我在上面代码中使用的行Id。

答案 1 :(得分:1)

如果我们正在谈论一个始终存在的按钮,你可以使用ButtonField,甚至使用TemplateField并为模板提供按钮,并将数据绑定到按钮(听起来你可能想要将数据绑定到属性)按钮?)

如果您希望在UI中动态生成按钮,请点击RowCreated事件并添加GridView按钮。你必须在每个页面加载时执行此操作; GridView将不会记住以编程方式创建的按钮。

HTH。