C# 在代码隐藏中为ASP.net中的GridView创建排序的代码?
这是页面加载事件的代码C# 在代码隐藏中为ASP.net中的GridView创建排序的代码?,c#,asp.net,gridview,sorting,C#,Asp.net,Gridview,Sorting,这是页面加载事件的代码 OdbcConnection myConnection; DataSet dataSet = new DataSet(); OdbcDataAdapter adapter; //making my connection myConnection = new OdbcConnection(ConfigurationManager.ConnectionSt
OdbcConnection myConnection;
DataSet dataSet = new DataSet();
OdbcDataAdapter adapter;
//making my connection
myConnection = new OdbcConnection(ConfigurationManager.ConnectionStrings ["ODBC_ConnectionString"].ConnectionString);
adapter = new OdbcDataAdapter("SELECT * from Company", myConnection);
adapter.Fill(dataSet, "MyData");
GridView1.DataSource = dataSet;
Session["DataSource"] = dataSet;
GridView1.DataBind();
这是我为PageIndexchange事件编写的代码,一切正常
DataSet ds = new DataSet();
if (Session["DataSource"] != null)
ds = ((DataSet)Session["DataSource"]);
GridView1.DataSource = ds;
GridView1.PageIndex = e.NewPageIndex;
this.GridView1.DataBind();
现在我需要什么代码来创建排序事件
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
?????????????????????????
}
Etienne您可以使用以下方法对数据集进行筛选和排序:
ds.Tables[0].Select(filterExp, sortExp, etc...);
我通常这样做:
public string SortField {
get {
return (string) ViewState["_sortField"];
}
set {
ViewState["_sortField"] = value;
}
}
public string SortDir {
get {
return (string) ViewState["_sortDir"];
}
set {
ViewState["_sortDir"] = value;
}
}
将执行数据绑定的代码放入另一个方法中,因为您必须在排序、分页和页面首次加载时调用它。例如,将其命名为DoDataBind()。然后是DoDataBind()中的
那么您的事件如下所示:
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e) {
if (e.SortExpression == SortField && SortDir != "desc") {
SortDir = "desc";
}
else {
SortDir = "asc";
}
SortField = e.SortExpression;
DoDataBind();
}
<asp:BoundField DataField="FIRSTNAME"
HeaderText="First Name" SortExpression="FIRSTNAME" />
然后在aspx页面中,您需要指定SortExpression是什么。例如,类似这样的事情:
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e) {
if (e.SortExpression == SortField && SortDir != "desc") {
SortDir = "desc";
}
else {
SortDir = "asc";
}
SortField = e.SortExpression;
DoDataBind();
}
<asp:BoundField DataField="FIRSTNAME"
HeaderText="First Name" SortExpression="FIRSTNAME" />
感谢您的回复……不确定“将您的代码放入另一种方法进行数据绑定”是什么意思?什么代码?你给我的代码?数据绑定网格的代码。所以这个:odbc连接myConnection;数据集=新数据集();OdbcDataAdapter适配器。。。剪adapter.Fill(数据集,“MyData”)//然后是我提到的代码:DataTable dt=dataSet.Tables[0];dt.DefaultView.Sort=SortField…等