找回密码
 立即注册

QQ登录

只需一步,快速开始

dyl

注册会员

9

主题

29

帖子

66

积分

注册会员

积分
66

活字格认证

dyl
注册会员   /  发表于:2012-2-9 10:47  /   查看:8173  /  回复:5
我使用的是Spread for winform 6。如何通过指定的Spread中的行号(如:ActiveRowIndex)取得中对应的DataSource中的行?

5 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2012-2-9 11:13:00
沙发

回复 1# dyl 的帖子

dyl 你好,请尝试以下代码,详细内容请参考帮助文档->GetDataRowFromModelRow 章节:

  1.             DataTable dt = new DataTable("Testing");
  2.             int i;
  3.             dt.Columns.Add("Number");
  4.             dt.Columns.Add("Letter");
  5.             dt.Rows.Add(new Object[] { "1", "One" });
  6.             dt.Rows.Add(new Object[] { "2", "Two" });
  7.             FarPoint.Win.Spread.Model.DefaultSheetDataModel dataModel = new FarPoint.Win.Spread.Model.DefaultSheetDataModel(dt);
  8.             fpSpread1.ActiveSheet.Models.Data = dataModel;

  9.             this.fpSpread1.Sheets[0].AddUnboundRows(1, 3);

  10.             i = dataModel.GetDataRowFromModelRow(4) ;
  11.             listBox1.Items.Add(i.ToString());
复制代码
回复 使用道具 举报
dyl
注册会员   /  发表于:2012-2-9 13:52:00
板凳
您好,谢谢您给意见,现在我使用的IDataSourceSupport.GetDataRowFromModelRow,能够从数据源中取得对应的行了。但是有一个问题,在启用了AllowAutoSort后,一旦排序后,使用GetDataRowFromModelRow取得的行号和Spread中对应的行号呈现出的数据是不一致的,还是未排序前的行号,请问这种情况如何解决。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-2-10 13:52:00
地板

回复 3# dyl 的帖子

dyl 你好:) ,可以根据以下代码获取:
this.fpSpread1.Sheets[0].GetModelRowFromViewRow(rowindex);
回复 使用道具 举报
mishidemayi
高级会员   /  发表于:2012-6-14 17:26:00
5#
回复 4楼iceman的帖子

使用 this.fpSpread1.Sheets[0].GetModelRowFromViewRow(rowindex);
获取的更不对的啊,执行新增行后没进行排序,也会出现  取得的行号和Spread中对应的行号呈现出的数据是不一致的问题
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-6-14 18:11:00
6#
回复 5楼mishidemayi的帖子

mishidemayi  你好

该问题和你这个帖子http://gcdn.grapecity.com/showtopic-4880.html是同一个问题吧,能否结合你的使用场景做一个Demo给我们调试一下。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部