以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- 同组不同数据行在DataList中特定列数据能隐藏吗? (http://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事件就那几个方法。
|