Сортировка GridView с полем шаблона и шаблоном заголовка - PullRequest
1 голос
/ 20 апреля 2011

Я использую GridView и в ячейке заголовка есть выпадающий список для фильтрации.

<gm:GridView ID="routePlanGridView" runat="server" AutoGenerateColumns="False"
    AllowPaging="true" PageSize="20" GridLines="Both" ShowFooter="true" CssClass="grid"
    DataKeyNames="RoutePlanId" OnSorting="routePlanGridView_Sorting"
    AllowSorting="true" OnPageIndexChanging="routePlanGridView_PageIndexChanging"
    OnSelectedIndexChanging="routePlanGridView_SelectedIndexChanging"
    OnRowDataBound="routePlanGridView_RowDataBound"
    OnRowEditing="routePlanGridView_RowEditing"
    OnRowUpdating="routePlanGridView_RowUpdating">
    <HeaderStyle CssClass="gridHeaderFooter" />
    <FooterStyle CssClass="gridHeaderFooter" />
    <RowStyle CssClass="gridRow" />
    <AlternatingRowStyle CssClass="gridRowAlternate" />
    <Columns>
        <asp:TemplateField SortExpression="SPName">
            <HeaderTemplate>
                SP Name<br />
                <asp:DropDownList ID="spNameFilterDDL" runat="server" CssClass="gridControl" AutoPostBack="true" DataSourceID="SPNameSDS" DataTextField="SPName" OnDataBound="filterDDL_DataBound" OnSelectedIndexChanged="spNameFilterDDL_SelectedIndexChanged" />
            </HeaderTemplate>
            <ItemTemplate>
                <asp:Label ID="spNameLabel" runat="server" Text='<%# Bind("SPName") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <...15 more...>
    </Columns>
</gm:GridView>

и есть соответствующие обработчики событий для сортировки и подкачки.
Теперь проблема в том, что если я вставлю текст «Имя SP» в кнопку ссылки, то при щелчке по ссылке происходит сбой страницы, в противном случае ссылка для сортировки не создается. Если я удаляю поля шаблона заголовка (все они) и помещаю текст с атрибутом HeaderText объекта TemplateField, он работает как положено. Есть ли способ соединить их? Мне нужен этот выпадающий список, а также сортировка.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 10 декабря 2013

извините, забыл правильно ввести код - здесь:

<asp:LinkButton runat="server" Text="SP Name" CommandName="Sort" CommandArgument="SPName" ></asp:LinkButton> 
0 голосов
/ 10 декабря 2013

Вам нужно использовать кнопку ссылки для вашего текста заголовка. Так что вместо «SP Name» используйте. Должно работать, если вы занимаетесь сортировкой.

...