请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

dyl

注册会员

9

主题

29

帖子

66

积分

注册会员

积分
66

活字格认证

dyl
注册会员   /  发表于:2012-1-29 16:00  /   查看:7679  /  回复:7
我有几个关于Spread For Net 6的问题想请教一下
1)在未绑定数据的时候,拖拽一列后,在原先的位置上多了一列
拖拽前,如图
11544382042465.jpg (7.67 KB, 下载次数: 742)

7 个回复

正序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-1-30 14:39:00
8#
哈哈,不客气
回复 使用道具 举报
dyl
注册会员   /  发表于:2012-1-30 13:16:00
7#
我明白了,谢谢。
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-1-30 11:25:00
6#
问题1,设置AllowColumnMove = true时有一个使用上的限制,Spread中必须要有数据,也就是Sheet.RowCount必须大于0

问题2,DataField主要是为了配合DataSource使用,在没有设置DataSource的情况下,应避免使用DataField属性

问题3,在设置DataSource的情况下通过DataField与列建立一一对应关系没有问题,如果没有设置DataSource的情况下,还得通过Column.Tab来实现你的需求

例如:
  1.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  2.         Dim dt As New DataTable
  3.         dt.Columns.Add("BillID")
  4.         dt.Columns.Add("Status")
  5.         dt.Columns.Add("UserName")

  6.         dt.Rows.Add(11, 21, 31)
  7.         dt.Rows.Add(12, 22, 32)

  8.         mySpread.ActiveSheet.DataSource = dt
  9.         mySpread.ActiveSheet.Columns(0).Tag = "BillID"
  10.         mySpread.ActiveSheet.Columns(1).Tag = "Status"
  11.         mySpread.ActiveSheet.Columns(2).Tag = "UserName"
  12.     End Sub
复制代码
拖动前:
15.png (33.76 KB, 下载次数: 579)
回复 使用道具 举报
gw0506
超级版主   /  发表于:2012-1-29 18:10:00
5#
关于问题3,你可以尝试用Tag属性来存储标识信息。例如:
  1. this.fpSpread1.ActiveSheet.Columns[1].Tag = "BillID";
复制代码

Demo的问题比较特殊,因为这部设置DataSource的情况下,DataField并没有被内部数据模型记录。情况比较复杂。可能明天才能有初步结论,还请见谅。
回复 使用道具 举报
dyl
注册会员   /  发表于:2012-1-29 18:04:00
地板
(1)问题1、2的Demo如下
SpreadForm.rar (74.06 KB, 下载次数: 585)
回复 使用道具 举报
dyl
注册会员   /  发表于:2012-1-29 17:44:00
板凳
(1)问题1、2的Demo如下


(2)关于问题3,我的需求场景是这样的:
一个列的标题是“状态”,它是第2列,然后用户将这列拖拽到第4列,我怎么才能通过代码知道现在的第4列就是原来的“状态”列,我现在是通过设置列的DataField=Status进行对应的,这个方法在我设置过DataSource后是没问题的,但如果我没有设置过Datasource的话,就会像上面的Demo中一样丢失DataField。不知道您是否有更好的建议。
回复 使用道具 举报
gw0506
超级版主   /  发表于:2012-1-29 16:47:00
沙发
对于第1,2两个问题,我使用Spread .NET 6中的Spread for WinForm产品没有重现。同时ResourcePortal中的Samples里有“Moving MultiPle Rows and Columns”示例。移动示例中的列,也不会出现1,2两个问题。
我想可能我们的现场不完全一致。尤其是“在未绑定数据的时候”,我可能理解有误。希望你能提供一个简单demo用于重现你说的问题。

关于问题3,“设置唯一的列名”可能也有疑问。首先设置列名,例如将第一列设置为BillID这是没有问题的。你说的唯一是指当设置第二列也为BillID时,不被接受。还是设置了第一列,该列每个单元格会自动填充唯一且自增的数据呢?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部