.net中gridview排序

wang_zhao_ai1215 2010-06-22 09:23:50
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
Session["page"] = GridView1.PageIndex;
//GridView1_Sorting(sender,e);
BindData();
}
在写分页的时候,第一页是可以正常排序的,但是到了下一页就乱了,这是控制下一页的代码,帮忙看看这是怎么了。在线等啊
...全文
315 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ok5567977 2010-06-23
  • 打赏
  • 举报
回复
#region 表格数据绑定
protected void DataGrid_bind()
{
DataView dv = PersonApp.GetPersonInfo(lblWhere.Text, AspNetPager1.StartRecordIndex, AspNetPager1.EndRecordIndex).DefaultView;
dv.Sort = ViewState["SortColumn"].ToString();
DataGridList.DataSource = dv;
DataGridList.DataBind();
dv.Dispose();
}
#endregion

#region 排序事件
protected void DataGridList_Sorting(object sender, GridViewSortEventArgs e)
{
if (ViewState["SortColumn"].ToString().Length.Equals(0))//如果ViewState为空,则为正序
{
ViewState["SortColumn"] = e.SortExpression + " asc";
}
else if (ViewState["SortColumn"].ToString().IndexOf("desc") > 0)//如果ViewState中包含desc,则当前为倒序,需要变成正序
{
ViewState["SortColumn"] = e.SortExpression + " asc";
}
else//其他情况,需要变成倒序
{
ViewState["SortColumn"] = e.SortExpression + " desc";
}
DataGrid_bind();
}
#endregion
xqqsm 2010-06-22
  • 打赏
  • 举报
回复
你可以从数据库取出来的时候就排序
zhoulingsmile 2010-06-22
  • 打赏
  • 举报
回复
你是手写代码排序还是。。。。
gridview有自动排序功能啊。。
yangtao7754 2010-06-22
  • 打赏
  • 举报
回复
你只要控制数据源的排序就好了
generhappy 2010-06-22
  • 打赏
  • 举报
回复
根本不用控制下页排序
nosuchtracter 2010-06-22
  • 打赏
  • 举报
回复
你这个排序是在代码里面排的,还是存储过程?
如果是在代码里面,你必须统一排好,然后放在缓存里面,这样换页也不影响
记得多结贴
wuyq11 2010-06-22
  • 打赏
  • 举报
回复
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" AllowSorting="true" OnSorting="GridView1_Sorting" AllowPaging="true" PageSize="10" OnPageIndexChanging="GridView1_PageIndexChanging">
<Columns>
<asp:BoundField DataField="id" HeaderText="代码" SortExpression="id"/>
<asp:BoundField DataField="name" HeaderText="名称" SortExpression="name"/>
<asp:TemplateField SortExpression="BUID" HeaderText="BUID">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("ID") %>' ToolTip='<%# DataBinder.Eval(Container.DataItem, "ID") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
ViewState["SortOrder"] = "deptid";
ViewState["OrderDire"] = "asc";
BindGridView();
}
}

protected void BindGridView()
{

DataSet ds = new DataSet();


DataView dv = ds.Tables[0].DefaultView;
string sort = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"];
dv.Sort = sort;
this.GridView1.DataSource = dv;

this.GridView1.DataBind();

}
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
string vortExp = e.SortExpression;
if (ViewState["SortOrder"].ToString() == vortExp)
{
if ((string)ViewState["OrderDire"] == "desc")
{
ViewState["OrderDire"] = "asc";
}
else if ((string)ViewState["OrderDire"] == "asc")
{
ViewState["OrderDire"] = "desc";
}
}
else
{
ViewState["SortOrder"] = e.SortExpression;
}
BindGridView();

}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
this.GridView1.PageIndex = e.NewPageIndex;
BindGridView();
}

62,242

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧