当标题是文字控件时,在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会对应用排序产生影响吗?
对模板字段使用排序表达式,并使用以下代码进行排序。
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();
}
}
}
}