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

时间:2011-08-08 12:12:05

标签: c# asp.net visual-studio sorting gridview

如何在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>

如您所见,标题模板包含文字。那么如何应用排序?文字的添加是否会对应用排序产生影响?

1 个答案:

答案 0 :(得分:0)

将sort表达式与模板字段一起使用,并使用以下代码进行排序。 IT对我来说非常好。

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();
            }
        }
    }
}