如何在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>
如您所见,标题模板包含文字。那么如何应用排序?文字的添加是否会对应用排序产生影响?
答案 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();
}
}
}
}