以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  同组不同数据行在DataList中特定列数据能隐藏吗?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=3262)

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


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

--  作者: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)


--  作者:狐狸爸爸
--  发布时间:2009/6/24 8:42:00
--  
如果不是整列隐藏,而是隐藏某一列中的特定数据,可以用DrawCell事件
--  作者:菜鸟foxtable
--  发布时间:2009/6/24 14:03:00
--  
难道要把某列中特定数据字体设为白色?

似乎没有隐藏方法。。。

AddUserStyle(Name,BackColor,ForeColor)

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

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

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


--  作者: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


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


--  作者:菜鸟foxtable
--  发布时间:2009/6/24 20:37:00
--  
谢谢各位提醒,有些钻牛角尖了,以为DataList的DrawCell事件就那几个方法。