1

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名」のテキストを入力すると、リンクをクリックするとページがクラッシュすることです。そうしないと、並べ替え用のリンクが生成されません。ヘッダーテンプレートフィールド(すべて)を削除し、TemplateFieldのHeaderText属性を持つテキストを配置すると、期待どおりに機能します。それらをまとめる方法はありますか?そのドロップダウンと並べ替えが必要です。

ありがとう。

4

2 に答える 2

2

申し訳ありませんが、コードを正しく挿入するのを忘れていました - ここに:

<asp:LinkButton runat="server" Text="SP Name" CommandName="Sort" CommandArgument="SPName" ></asp:LinkButton> 
于 2013-12-10T07:41:44.487 に答える