Foxtable(狐表)用户栏目专家坐堂 → 同组不同数据行在DataList中特定列数据能隐藏吗?


  共有18255人关注过本帖树形打印复制链接

主题:同组不同数据行在DataList中特定列数据能隐藏吗?

帅哥哟,离线,有人找我吗?
菜鸟foxtable
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 菜鸟中的老鸟
等级:七尾狐 帖子:1486 积分:10064 威望:0 精华:9 注册:2008/11/14 8:54:00
同组不同数据行在DataList中特定列数据能隐藏吗?  发帖心情 Post By:2009/6/23 22:41:00 [只看该作者]

如下图所示,同一组的不同数据行某些列(比如组号/时间)在DataList中能隐藏吗?怎么实现?


图片点击可在新窗口打开查看此主题相关图片如下:01.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2009-6-23 22:41:20编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
blackzhu
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57584 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2009/6/24 7:41:00 [只看该作者]

 

SetColVisible

设置指定列是否可见。

语法:

SetColVisible(ColName, Visible)

ColName: 列名称
Visible: 逻辑型,是否可见。

示例

隐藏金额列

Dim dst As WinForm.DataList = e.Form.Controls("DataList1")
dst.SetColVisible("金额", False)


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/6/24 8:42:00 [只看该作者]

如果不是整列隐藏,而是隐藏某一列中的特定数据,可以用DrawCell事件

 回到顶部
帅哥哟,离线,有人找我吗?
菜鸟foxtable
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 菜鸟中的老鸟
等级:七尾狐 帖子:1486 积分:10064 威望:0 精华:9 注册:2008/11/14 8:54:00
  发帖心情 Post By:2009/6/24 14:03:00 [只看该作者]

难道要把某列中特定数据字体设为白色?

似乎没有隐藏方法。。。

AddUserStyle(Name,BackColor,ForeColor)

Name:      样式名称
BackColor: 背景颜色
ForeColor: 字体颜色

DataList的DrawCell事件在绘制单元格的时候执行,该事件的e参数属性有:

Form:     触发事件的窗口
Sender:   触发事件的控件
DataRow:  正在绘制的数据行
ColName: 正在绘制的列的名称
Style:   用于绘制单元格的样式名称


 回到顶部
美女呀,离线,留言给我吧!
yangming
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/6/24 15:44:00 [只看该作者]

DrawCell

在绘制单元格的时候执行。

e参数属性有:

Form:     触发事件的窗口
Sender:   触发事件的控件
DataRow:  正在绘制的数据行
ColName: 正在绘制的列的名称
Style:   用于绘制单元格的样式名称

示例

假定DataList用于显示订单数据,我们希望对于大于5000的金额,用红底蓝字标出,对于大于4000的金额,用蓝底白字标出。

首先在窗口的AfterLoad事件中设置代码,增加两个样式:

Dim dst As WinForm.DataList = e.Form.Controls("DataList1")
dst.AddUserStyle(
"a",Color.Red,Color.Blue)
dst.AddUserStyle(
"b",Color.Blue,Color.White)

然后将DataList的DrawCell事件设为:

If e.ColName = "金额" Then
    Dim Val As Double = e.DataRow("金额")
    if
Val > 5000
Then
        e.Style =
"a"
   
ElseIf Val > 4000 Then
        e.Style=
"b"
   
End If
End
If


 回到顶部
帅哥哟,离线,有人找我吗?
gdtgl
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:445 积分:3013 威望:0 精华:0 注册:2008/9/13 10:49:00
  发帖心情 Post By:2009/6/24 20:10:00 [只看该作者]

示例二

DrawCell事件不仅用于标记数据,还可以用他“篡改”数据。
假定有一名为“密码”的列,要求只有经理级别的用户才能查看该列的数据,其他人查看的时候,看到的只是"****"。
实现的代码也非常简单,在该表的DrawCell事件中输入:

If User.Group = "经理" Then '如果是经理
    Return '那么返回,正常显示数据
End If
If e.Col.Name = "密码" Then '如果正在绘制的是密码列
    e.Text = "****" '那么用*代替原来的内容
End IF

DrawCell事件只是影响显示内容,并不会对真实的值有任何影响。


 回到顶部
帅哥哟,离线,有人找我吗?
菜鸟foxtable
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 菜鸟中的老鸟
等级:七尾狐 帖子:1486 积分:10064 威望:0 精华:9 注册:2008/11/14 8:54:00
  发帖心情 Post By:2009/6/24 20:37:00 [只看该作者]

谢谢各位提醒,有些钻牛角尖了,以为DataList的DrawCell事件就那几个方法。

 回到顶部