终于把AspNetPager控件的分页和排序都整出来了。
分页:按照它的步骤做,改一下具体的方法即可。
遇到难题:点击下一页,总是重新加载页面,这一点很烦人。
解决办法:换成Ajax的局部刷新就好用了。
具体看项目中的代码
排序:这个费了不少了劲
关键是要把排序条件传到DAL中去,而不是在前台中用Dataview中排序。
细节:
<asp:BoundField DataField="I_TranState" HeaderText="状态" Sortexpression_r="I_TranState">
<HeaderStyle CssClass="bt1" />
<ItemStyle Wrap="False" />
</asp:BoundField>
1.先是在GridView中的绑定列中设置条件:Sortexpression_r="I_TranState"
2.在GridView中的Sorting事件中写代码:
protected void Repeater_NEWS_Sorting(object sender, GridViewSortEventArgs e)
{
ViewState["orderName"] = e.Sortexpression_r;
if (GridViewSortDirection == SortDirection.Ascending) //设置排序方向
{
GridViewSortDirection = SortDirection.Descending;
ViewState["orderId"] = " DESC";
}
else
{
GridViewSortDirection = SortDirection.Ascending;
ViewState["orderId"] = " ASC";
}
gridviewdatabind(ViewState["orderName"].ToString(), ViewState["orderId"].ToString());
}
为ViewState设置条件,以便于传递到后台。
if和else的意思是:刚开始是:Asc,点击一次排序条件变为Desc,再点一次变回来。