Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共7 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

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

1楼
菜鸟foxtable 发表于:2009/6/23 22:41:00
如下图所示,同一组的不同数据行某些列(比如组号/时间)在DataList中能隐藏吗?怎么实现?


图片点击可在新窗口打开查看此主题相关图片如下:01.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2009-6-23 22:41:20编辑过]
2楼
blackzhu 发表于: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楼
狐狸爸爸 发表于:2009/6/24 8:42:00
如果不是整列隐藏,而是隐藏某一列中的特定数据,可以用DrawCell事件
4楼
菜鸟foxtable 发表于:2009/6/24 14:03:00
难道要把某列中特定数据字体设为白色?

似乎没有隐藏方法。。。

AddUserStyle(Name,BackColor,ForeColor)

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

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

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

5楼
yangming 发表于: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

6楼
gdtgl 发表于: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事件只是影响显示内容,并不会对真实的值有任何影响。

7楼
菜鸟foxtable 发表于:2009/6/24 20:37:00
谢谢各位提醒,有些钻牛角尖了,以为DataList的DrawCell事件就那几个方法。
共7 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .02344 s, 2 queries.