我有一個網格視圖,我正在實現分頁和排序。當我對錶進行排序,然後選擇2頁,則排序會丟失,在GridView控件綁定在asp.net中進行分頁和排序的問題gridview
private DataSet BindGridView(string field)
{
DataSet ds = new DataSet()
string userQuery = "Select tbl_User.UserID, tbl_User.FirstName from tbl_user order by tbl_user.UserID desc";
UserTable.DataBind();
return ds;
}
<asp:GridView ID="UserTable" runat="server" PageSize="20" AllowPaging="True"
SelectedIndex="0" DataKeyNames="UserID" OnRowDataBound="UserTable_RowDataBound"
AutoGenerateColumns="false" OnPageIndexChanging="gridView_PageIndexChanging" AllowSorting="true" OnSorting="gridView_Sorting">
我怎樣才能留住排序和執行尋呼提到的第二個20條記錄顯示在遞減,我存儲在會話中排序狀態,我如何使用它來執行分頁。
protected void gridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
UserTable.PageIndex = e.NewPageIndex;
UserTable.DataBind();
DataView myView = new DataView(BindGridView(Session["useremail"].ToString()).Tables[0]);
}
protected void gridView_Sorting(object sender, GridViewSortEventArgs e)
{
string sortExpression = null;
if ((Session["UsersortExpression"] == null))
{
sortExpression = null;
}
else
{
sortExpression = (Session["UsersortExpression"].ToString());
}
if (sortExpression == e.SortExpression)
{
sortExpression += " DESC";
}
else
{
sortExpression = e.SortExpression;
}
DataView myView = new DataView(BindGridView(Session["useremail"].ToString()).Tables[0]);
myView.Sort = sortExpression;
UserTable.DataSource = myView;
UserTable.DataBind();
//save sort state
Session.Add("UsersortExpression", sortExpression);
}
好像你正在重新綁定你的頁面索引中的網格,並在你的BindGridView中再次改變。不要多次重新綁定網格。只要確保你的BindGridView方法在檢查了你的pageindex和排序邏輯之後做了綁定。 – Rajesh 2012-01-09 17:26:19
如果我沒有從分頁代碼隱藏中調用bindgridview,那麼頁面2沒有被填充,它沒有記錄。我該怎麼做,你可以展示一些代碼 – Murthy 2012-01-10 10:00:24