为了账号安全,请及时绑定邮箱和手机立即绑定

麻烦帮忙解释一下关于SortExpression的用法问题

麻烦帮忙解释一下关于SortExpression的用法问题

素胚勾勒不出你 2021-11-25 15:15:04
请教一下,GridView里面的每个BoundField里面都有一个SortExpression,那排序的时候是按照哪一个表达式去排啊?其实我不大明白SortExpression有什么用的...是不是类似于字典那样的排序,每个表达式都有用的?还是只有其中一个表达式有用?
查看完整描述

2 回答

?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

排序字段,点击定义了该属性的字段名,可以获得该字段的排序规则,并产生排序事件,修改dataset(数据源)的视图状态,以该字段为规则进行排序
还有同时常用到的属性:SortDirection

下面这个例子可以很好的看出它的用法:

protected void kjkm_dg_SortCommand(object source, DataGridSortCommandEventArgs e)
{
string SortExpression = e.SortExpression.ToString(); //获得当前排序表达式
string SortDirection = "ASC"; //为排序方向变量赋初值
if (SortExpression == kjkm_dg.Attributes["SortExpression"]) //如果为当前排序列
{
SortDirection = (kjkm_dg.Attributes["SortDirection"].ToString() == SortDirection ? "DESC" : "ASC"); //获得下一次的排序状态
}
kjkm_dg.Attributes["SortExpression"] = SortExpression;
kjkm_dg.Attributes["SortDirection"] = SortDirection;
mikecatbind();
}



查看完整回答
反对 回复 2021-11-28
?
qq_笑_17

TA贡献1818条经验 获得超7个赞

GridView.SortExpression 属性 是用来获取与正在排序的列关联的排序表达式。

下面是例子你看看吧。
<%@ Page language="C#" %>

<script runat="server">

void CustomersGridView_RowCreated(Object sender, GridViewRowEventArgs e)
{

// Use the RowType property to determine whether the
// row being created is the header row.
if (e.Row.RowType == DataControlRowType.Header)
{
// Call the GetSortColumnIndex helper method to determine
// the index of the column being sorted.
int sortColumnIndex = GetSortColumnIndex();

if (sortColumnIndex != -1)
{
// Call the AddSortImage helper method to add
// a sort direction image to the appropriate
// column header.
AddSortImage(sortColumnIndex, e.Row);
}
}
}

// This is a helper method used to determine the index of the
// column being sorted. If no column is being sorted, -1 is returned.
int GetSortColumnIndex()
{

// Iterate through the Columns collection to determine the index
// of the column being sorted.
foreach (DataControlField field in CustomersGridView.Columns)
{
if (field.SortExpression == CustomersGridView.SortExpression)
{
return CustomersGridView.Columns.IndexOf(field);
}
}

return -1;
}

// This is a helper method used to add a sort direction
// image to the header of the column being sorted.
void AddSortImage(int columnIndex, GridViewRow headerRow)
{

// Create the sorting image based on the sort direction.
Image sortImage = new Image();
if (CustomersGridView.SortDirection == SortDirection.Ascending)
{
sortImage.ImageUrl = "~/Images/Ascending.jpg";
sortImage.AlternateText = "Ascending Order";
}
else
{
sortImage.ImageUrl = "~/Images/Descending.jpg";
sortImage.AlternateText = "Descending Order";
}

// Add the image to the appropriate header cell.
headerRow.Cells[columnIndex].Controls.Add(sortImage);

}

</script>

<html>
<body>
<form runat="server">

<h3>GridView AllowSorting Example</h3>

<asp:gridview id="CustomersGridView"
datasourceid="CustomersSource"
autogeneratecolumns="false"
emptydatatext="No data available."
allowsorting="true"
onrowcreated="CustomersGridView_RowCreated"
runat="server">

<columns>
<asp:boundfield datafield="CustomerID"
headertext="Customer ID"
headerstyle-wrap="false"
sortexpression="CustomerID"/>
<asp:boundfield datafield="CompanyName"
headertext="CompanyName"
headerstyle-wrap="false"
sortexpression="CompanyName"/>
<asp:boundfield datafield="Address"
headertext="Address"
headerstyle-wrap="false"
sortexpression="Address"/>
<asp:boundfield datafield="City"
headertext="City"
headerstyle-wrap="false"
sortexpression="City"/>
<asp:boundfield datafield="PostalCode"
headertext="Postal Code"
headerstyle-wrap="false"
sortexpression="PostalCode" />
<asp:boundfield datafield="Country"
headertext="Country"
headerstyle-wrap="false"
sortexpression="Country"/>
</columns>

</asp:gridview>

<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the Northwind sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the Web.config file. -->
<asp:sqldatasource id="CustomersSource"
selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]"
connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
runat="server"/>

</form>
</body>
</html>



查看完整回答
反对 回复 2021-11-28
  • 2 回答
  • 0 关注
  • 449 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信