在GridView 使用ObjectDatasource 使用自定义分页后,出现点击字段进行排序的时候,点第二页的某个字段排序,会自动跳转到第一页。
有高手知道原因吗!
有高手知道原因吗!
解决方案 »
- asp.net 页面跳转 传值问题
- 关于向这个https://graph.qq.com/t/add_pic_t接口提交数据的问题
- 关于XP SP3安装IIS和microsoft sql server 2005的问题,希望大家仁者见仁,智者见智!
- 一个中型招聘网站的数据库关系分析!!求教
- 求"从IIS为ASP.NET建立的pipe里分块读取数据"的详细代码 初学者~~万分感谢!!
- ASP.NET 如何實現圖片不變形縮放?
- 在一个框架中,怎么样实现刷新整个框架?
- 在windows2003下,word操作的问题,在线等
- 错误信息:“CrystalReportViewer”在命名空间“CrystalDecisions.Web”中不明确”怎么产生的
- .net中如何进行团队合作?
- 伪造访问来源
- 怎么取消Visual Studio 2005 html控件table的宽度style定义
http://www.cnblogs.com/jarod99/archive/2009/01/22/1379758.html
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]
public DataTable GetDocumentsPaged(int startRowIndex, int maximumRows,string orderby)
{ ListDictionary Dic = new ListDictionary();
//vm_UserDocument GetCount = new vm_UserDocument();
Dic.Add("datasrc", "vw_UserDocuments");
Dic.Add("startRowIndex", startRowIndex);
Dic.Add("maximumRows",maximumRows);
if (orderby != "")
{
Dic.Add("orderby", orderby);
}
this.LoadFromSql("proc_GetPagedData", Dic);
return this.DataTable;
}
这个事BLL类 里面从数据库调数据的,数据库有proc_GetPagedData的存储过程,使用的基类是Mygeneration(ORM)产生的.
protected void ObjectDataSource1_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
{
if (e.ExecutingSelectCount)
{
e.InputParameters.Clear(); }
else
{ string order = this.CCDocument.SortExpression;
if (order != "")
order = order + (this.CCDocument.SortDirection == SortDirection.Ascending ? " Asc " : " Desc");
e.InputParameters["orderby"] = order;
}
}
排序使用的代码
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetDocumentsPaged"
TypeName="CaptureVueCentral.BLL.vm_UserDocument" OnObjectCreated="ObjectDataSource1_ObjectCreated" EnablePaging="true" SelectCountMethod="TotalNumberOfDocuments" OnSelecting="ObjectDataSource1_Selecting">
</asp:ObjectDataSource>
<asp:UpdatePanel ID="updatePanel" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="CCDocument" runat="server" OnRowDataBound="RowDataBound" AutoGenerateColumns="False"
AllowPaging="True" CssClass="tablesorter" DataSourceID="ObjectDataSource1" DataKeyNames="DocID" PageSize="2" AllowSorting="True" OnSorting="CCDocument_Sorting">
<PagerStyle CssClass="pager-row" />
<RowStyle CssClass="row" />
<PagerSettings PageButtonCount="7" FirstPageText="«"
LastPageText="»" />
<Columns>
<asp:BoundField HeaderText="DocID" DataField="DocID" SortExpression="DocID">
<HeaderStyle CssClass="first" />
<ItemStyle CssClass="first" />
</asp:BoundField>
<asp:BoundField HeaderText="DocName" DataField="DocName" SortExpression="DocName" />
<asp:BoundField HeaderText="Project" DataField="Project" SortExpression="Project" />
<asp:BoundField HeaderText="Require Comment" DataField="RequireComment" SortExpression="RequireComment"
DataFormatString="{0:c}">
<ItemStyle CssClass="money" />
</asp:BoundField>
<asp:BoundField HeaderText="Viewed" DataField="Viewed" SortExpression="Viewed" />
<asp:BoundField HeaderText="Status" DataField="RecipientDocStatus" SortExpression="RecipientDocStatus" />
<asp:BoundField HeaderText="Received Date" DataField="RevDate" SortExpression="RevDate" />
<asp:BoundField HeaderText="Assign User" DataField="DMUser" SortExpression="DMUser"/>
<asp:TemplateField>
<ItemTemplate>
<input class="button" type="button" value="Edit" onclick='ShowDetails(<%#Eval("DocID")%>,<%# Container.DataItemIndex%>)' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
对,是你的Sorting出问题了,在点击的时候每次都绑定了分页方法,所以全调回去了