开发者

Apply sorting in gridview when the header is literal control

How to apply basic sorting in the gridview? Below is the gridview code.

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

As you can see the header template contains a literal. So how to apply sorting? will the addition of literal make a difference in applying sorting?


Use sort expression with template field and use the following code for sorting. ITs working perfectly fine for me.

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜