Как поместить кнопку в заголовок ASP.NET gridview? - PullRequest
6 голосов
/ 13 сентября 2009

Все, что я хочу сделать, это поместить кнопку asp: в заголовок вида сетки. Допустим, у вас есть сетка с 3 столбцами - идентификатор, имя, семья. Итак, вместо заголовка [id, name, family] я хочу, чтобы он был [id, name, asp: button] - поэтому кнопка будет иметь свое действие, конечно.

Спасибо, Roman.

Ответы [ 2 ]

11 голосов
/ 13 сентября 2009

Подход, который вам нужно сделать, - сделать этот желаемый столбец 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>

Чтобы «захватить» событие нажатия вашей кнопки и что-то с ним сделать, вам нужно использовать событие RowCommand GridView (вот отправная точка - опять не проверено):

    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 - текст ссылки

Надеюсь, это поможет.

0 голосов
/ 13 сентября 2009

это на самом деле LinkButtons. вы можете использовать css, чтобы придать им вид реальной кнопки.

однако, это вряд ли будет элегантно, тогда как тенденция в дизайне на самом деле заключается в использовании ссылок вместо кнопок (посмотрите на любое популярное веб-приложение, которое вы любите, в том числе и это)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...