Savas
Savas

Reputation: 77

GridView sorting with Template Field and Header Template

I'm using GridView and there is a dropdownlist in header cell for filtering.

<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>

and there are relevant event handlers for sorting and paging.
Now the problem is if I put "SP Name" text in a link button, page crashes when link clicked, otherwise no link produced to sort. If I remove Header Template fields (all of them) and put a text with HeaderText attribute of TemplateField it works as expected. Is there a way to put them together? I need that dropdown and also sorting.

Thanks.

Upvotes: 1

Views: 6739

Answers (2)

bep
bep

Reputation: 29

sorry, forgot to insert the code correctly - here:

<asp:LinkButton runat="server" Text="SP Name" CommandName="Sort" CommandArgument="SPName" ></asp:LinkButton> 

Upvotes: 2

bep
bep

Reputation: 29

You need to use a link button for your header text. So in place of "SP Name", use . It should work if you are handling sorting.

Upvotes: -1

Related Questions