找回密码
 立即注册

QQ登录

只需一步,快速开始

zxc9089
初级会员   /  发表于:2015-3-11 17:01  /   查看:11691  /  回复:12
一般来说C1DataGrid 中设置了

  1. <c1:C1RowIndexHeaderBehavior.RowIndexHeaderBehavior>
  2.       <c1:C1RowIndexHeaderBehavior InitialIndex="1"/>
  3. </c1:C1RowIndexHeaderBehavior.RowIndexHeaderBehavior>
复制代码

就可以出现行号。

现在出现了一个问题,我用sql语句来实现分页效果后切换页码后行号还是以1开始。

然后我将此设置做了个更改

  1. <c1:C1RowIndexHeaderBehavior.RowIndexHeaderBehavior>
  2.       <c1:C1RowIndexHeaderBehavior InitialIndex="{Binding PageInitialIndex}"/>
  3. </c1:C1RowIndexHeaderBehavior.RowIndexHeaderBehavior>
复制代码


后台属性定义:

  1. /// <summary>
  2. /// 页大小
  3. /// </summary>
  4. public int PageSize
  5. {
  6.     get { return _pageSize == 0 ? 20 : _pageSize; }
  7.     set
  8.     {
  9.         _pageSize = value;
  10.         RaisePropertyChanged("PageSize");
  11.         RaisePropertyChanged("PageInitialIndex");
  12.     }
  13. }

  14. /// <summary>
  15. /// 页码(页索引)
  16. /// </summary>
  17. public int PageIndex
  18. {
  19.     get { return _pageIndex == 0 ? 1 : _pageIndex; }
  20.     set
  21.     {
  22.         _pageIndex = value;
  23.         RaisePropertyChanged("PageIndex");
  24.         RaisePropertyChanged("PageInitialIndex");
  25.     }
  26. }


  27. /// <summary>
  28. /// 页码(页索引)
  29. /// </summary>
  30. public int PageInitialIndex
  31. {
  32.     get { return (PageIndex - 1) * PageSize + 1; }
  33. }
复制代码


期望这样设置后分页后更改InitialIndex值。最终却没有效果。  这是什么原因呢?
或者说有没有什么方法能够替代?

12 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2015-3-11 18:33:00
沙发
回复 1楼zxc9089的帖子

你的问题已经收到,验证后明天给你反馈。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
zxc9089
初级会员   /  发表于:2015-3-13 09:41:00
板凳
回复 2楼Alice的帖子

请问有复现这个问题吗?
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-3-13 16:12:00
地板
回复 3楼zxc9089的帖子

有关分页,我们有另外提供C1DataSource帮助用户更容易的实现分页。

文档参考:
http://helpcentral.componentone. ... DataSetsPaging.html

安装产品后,可以在如下路径找到例子:
Documents\ComponentOne Samples\Studio for WPF\C1.WPF.DataSource\CS\DataSourceSamples\DataSourceSamples

Samples文件夹下的C1FlexGridPaging就是分页的例子。
需要注意的是:C1DataSource控件式在2013V3发布的新功能,在这个版本之前的版本没有。C1DataSource 控件传递虚拟化数据给C1FlexGrid 和C1DataGrid。在数据层面实现分页功能,使您在加载大量数据时实现平滑 滚动。就是为了提高性能。

如果你在使用过程中有什么问题,请提出,我们再这些点继续讨论。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
zxc9089
初级会员   /  发表于:2015-3-13 17:21:00
5#
这个demo我稍微看了下, 无法运行起来,应该是数据库的问题。  但是我看了下代码并没有设置DataGrid的行号的设置,这样会出现行号吗? 行号在分页后会连续起来吗?(第二页的行号不重新开始)
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-3-13 18:39:00
6#
回复 5楼zxc9089的帖子

我再次和你确认下你的问题:你需要对C1DataGrid进行分页,并且在分页后需要每一页都从1开始重新计数。

就这两个点,我们首先来确认下,你是什么分页方法?
如果你已经完成了分页功能,仅仅还剩第一行行号的显示这点。
那么请你将已经完成的Demo发给我,可以加快我调查该问题的进度。然后我会就这个Demo帮助你进行下一步,看看如何设置行号。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
zxc9089
初级会员   /  发表于:2015-3-13 22:48:00
7#
回复 6楼Alice的帖子

现在是分页的功能已经实现,但是分页显示数据后行号每页都是从1开始。 我期望是 第一页显示1、2、3  ,第二页显示 4、5、6 类似如此。 以下是我写的模拟demo,能够模拟出现状。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-3-16 15:12:00
8#
回复 7楼zxc9089的帖子

Demo已经下载,测试后给你回复。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-3-16 18:00:00
9#
回复 7楼zxc9089的帖子

对你的Demo进行了测试,问题出在程序中PageInitialIndex就没有成功绑定到InitialIndex.

解决方法,我对你的程序做了修改。
XMAL文件里改成:
  1.              ItemsSource="{Binding List}" >
  2.             <c1:C1RowIndexHeaderBehavior.RowIndexHeaderBehavior>

  3.                 <Binding Path="MyBehavior"/>
  4.             </c1:C1RowIndexHeaderBehavior.RowIndexHeaderBehavior>
复制代码


MainViewModel.cs文件添加:
  1.   public C1RowIndexHeaderBehavior MyBehavior
  2.         {
  3.             get
  4.             {
  5.                 return new C1RowIndexHeaderBehavior() { InitialIndex = PageInitialIndex };
  6.             }

  7.         }
复制代码


最后在所有PageInitialIndex  changed的代码后天添加如下一句代码:
  1. RaisePropertyChanged("MyBehavior");
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
zxc9089
初级会员   /  发表于:2015-3-19 11:45:00
10#
好的我先试试
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部