oct*_*ist 7 c# asp.net gridview objectdatasource
所以在我尝试通过ObjectDataSource进行自定义gridview分页之前...我想我已经阅读了人类已知的每个教程,以确保我得到它.它看起来不像火箭科学.
我在gridview上设置了AllowPaging = True.
我在gridview上指定了PageSize ="10".
我在ObjectDataSource上设置了EnablePaging ="True".
我已经将2个分页参数(maximumRows&startRowIndex)添加到我的业务对象的select方法中.
我创建了一个类似的"count"方法,其签名与select方法相同.
我似乎遇到的唯一问题是在执行期间... ObjectDataSource正在为我的业务对象提供最大值-1,我不能为我的生活找出原因.我已经搜索到网络的末尾,其他人遇到这个问题,显然我是唯一一个.该StartRowIndex参数似乎是工作得很好.
有任何想法吗?
小智 0
你并不孤单。我也有同样的问题。我的设置有点不同。就我而言,我使用 ListView 而不是 GridView 控件。我有 2 个页面,一个使用 ListView 和 DataPager,另一个使用 ListView 和自定义导航控件(这本质上与 DataPager 相同,只是标记输出不同)。两个页面都使用相同的 BLL 方法,并以相同的方式设置 maximumRow 和 startRow。基本上是复制粘贴代码。
ListView-DataPager 设置工作正常,BLL 方法中的参数设置正确。没有 DataPager 的页面失败。但 DataPager 不可能是原因。两者(DataPager 和我的自定义控件)都会生成相同的预期值,这些值将传递到 ObjectDataSource 参数集合。
最令人困惑的是,在 SelectMethod 之后调用的 SelectCountMethod 在两个版本中都获取了正确的参数!
我可以通过在 ObjectDataSource 的 OnSelecting 事件中设置参数值来解决此问题:
protected void ObjectDataSource_MyListing_OnSelecting(object sender, ObjectDataSourceSelectingEventArgs e)
{
e.Arguments.StartRowIndex = m_startRowIndex;
e.Arguments.MaximumRows = m_PageSize;
}
Run Code Online (Sandbox Code Playgroud)
我在某处读到,MaximumRows 的 -1 值仅表示“所有剩余记录”。所以这不会是一个错误,而是一个默认值。
这是我在这里发表的第一篇文章,希望我没有做错任何事情,因为这并不是真正的解决方案。另外,我不想劫持,但我希望有任何其他信息......这个问题困扰着我。
| 归档时间: |
|
| 查看次数: |
8195 次 |
| 最近记录: |