使用模板字段和标题模板进行 GridView 排序

发布于 2024-11-02 08:45:35 字数 1757 浏览 1 评论 0原文

我正在使用 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 属性的文本,它将按预期工作。有没有办法把它们放在一起?我需要下拉列表和排序。

谢谢。

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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

雾里花 2024-11-09 08:45:35

抱歉,忘记正确插入代码 - 此处:

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

sorry, forgot to insert the code correctly - here:

<asp:LinkButton runat="server" Text="SP Name" CommandName="Sort" CommandArgument="SPName" ></asp:LinkButton> 
-小熊_ 2024-11-09 08:45:35

您需要为标题文本使用链接按钮。因此,请使用 . 代替“SP 名称”。如果您正在处理排序,它应该可以工作。

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文