当标题是文字控件时,在gridview中应用排序

本文关键字:gridview 应用 排序 标题 文字 控件 | 更新日期: 2023-09-27 18:05:04

如何在gridview中应用基本排序?下面是gridview代码。

<asp:TemplateField SortExpression="Sample1">             
                         <HeaderTemplate SortExpression="Sample1">
                                 <asp:Literal ID="litSample1" runat="server" Text="<%$ Resources:Resource, gvColSample1 %>"></asp:Literal>
                                    <asp:DropDownList ID="ddlSample1" runat="server" OnSelectedIndexChanged="SelectionChanged" AutoPostBack="true" CssClass="dropdownS" AppendDataBoundItems="true">
                                   <asp:ListItem Text=" " Value="-1"></asp:ListItem>
                                   <asp:ListItem Text="ALL" Value="ALL"></asp:ListItem>
                                    </asp:DropDownList>
                         </HeaderTemplate>      
                            <ItemTemplate>
                                <%# Eval("RowSample1") %>
                            </ItemTemplate>   
                        </asp:TemplateField>

如你所见,头模板包含一个文字。那么如何应用排序呢?添加literal会对应用排序产生影响吗?

当标题是文字控件时,在gridview中应用排序

对模板字段使用排序表达式,并使用以下代码进行排序。

protected void gvTool_Sorting(object sender, GridViewSortEventArgs e)
{
    if (ViewState["sortMode"] == null)
    {
        ViewState["sortMode"] = SORT_DESC;
    }
    if (ViewState["sortMode"] != null)
    {
        if (Convert.ToString(ViewState["sortMode"]).Trim().Equals(SORT_ASC))
        {
            ViewState["sortMode"] = SORT_DESC;
        }
        else
        {
            ViewState["sortMode"] = SORT_ASC;
        }
    }
    string sortexpr = e.SortExpression;
    ViewState["sortexpr"] = e.SortExpression;
    sort();
}
protected void sort()
{
    if (ViewState["sortexpr"] != null)
    {
        DataView dvTool = default(DataView);
        DataTable dtTool = new DataTable();
        dtTool = (DataTable)ViewState["dtTool"];
        if ((dtTool != null))
        {
            if (dtTool.Rows.Count > 0)
            {
                dvTool = dtTool.DefaultView;
                dvTool.Sort = ViewState["sortexpr"].ToString().Trim() + " " + ViewState["sortMode"];
                gvTool.DataSource = dvTool;
                gvTool.DataBind();
            }
        }
    }
}