【问题标题】:How to put a button in a header of ASP.NET gridview?如何在 ASP.NET gridview 的标题中放置一个按钮?
【发布时间】:2009-09-13 11:03:58
【问题描述】:

我想要做的就是在gridview 的标题中放置一个asp:button。 假设您有一个包含 3 列的网格视图 - id、name、family。所以,而不是标题 [id, name, family] 我希望它是 [id, name, asp:button] - 所以按钮当然会有它的动作。

谢谢, 罗马。

【问题讨论】:

    标签: asp.net button


    【解决方案1】:

    您需要采取的方法是使所需的 GridView 列成为模板字段。当您使用模板字段时,您可以将任何 asp.net 控件粘贴到 gridview 控件的每个主要部分(页眉、项目、页脚等)。我没有对此进行测试,但原则上它看起来像这样:

            <asp:GridView ID="Gridview1" runat="server">
            <Columns>
                <asp:BoundField DataField="yourDbColumnName" HeaderText="id" />
                <asp:BoundField DataField="yourDbColumnName" HeaderText="name" />
                <asp:TemplateField>
                    <HeaderTemplate>
                        <asp:Button runat="server" ID="btnFamily" CommandName="FamilyClicked" />
                    </HeaderTemplate>
                    <ItemTemplate>
                        <asp:Literal runat="server" ID="litFamily" Text='<%# EVAL("YourDbColumnValue") %>'></asp:Literal>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
    

    要“捕获”按钮的单击事件并对其进行处理,您需要利用 GridView 的 RowCommand 事件(这是一个起点 - 再次未经测试):

        Protected Sub Gridview1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles Gridview1.RowCommand
        If e.CommandName = "FamilyClicked" Then
            ' they clicked by grid view header's asp:button control...
            Response.Write("TEST")
        End If
    End Sub
    

    这里的神奇之处在于按钮的 CommandName 属性的分配(在这种情况下,我将其设置为“FamilyClicked”,但它可以是任何你想要的)。

    这里有更多关于 GridView 使用的模板字段技术的基础知识 - link text

    希望对您有所帮助。

    【讨论】:

      【解决方案2】:

      这些实际上是链接按钮。 您可以使用 css 为它们提供真实按钮的外观和感觉。

      然而,它并不优雅,而设计趋势实际上是使用链接而不是按钮(看看你喜欢的任何流行的网络应用程序,包括这个)

      【讨论】:

      • 我想我没有说清楚 - 我不希望它与已经存在的 LinkBut​​tons 具有相同的操作 - 我想将我的按钮设置为不同的操作(比如去另一页)。谢谢。
      • 如果你只想插入 它更简单。使用 jQuery(或任何其他 js lib)在一行代码中完成。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-06
      • 2015-05-27
      • 2021-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      相关资源
      最近更新 更多