以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 筛选后的数据显示 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=3088) |
-- 作者:blackzhu -- 发布时间:2009/6/10 12:57:00 -- 筛选后的数据显示 我们筛选后,我想用颜色将所筛选的数据标出.比如我筛选一个订单为"W5",我想用黄色将"W5"标出,背景或者字体均可.代码怎么写? |
-- 作者:狐狸爸爸 -- 发布时间:2009/6/10 12:57:00 -- 看drawcell事件 |
-- 作者:yangming -- 发布时间:2009/6/10 13:00:00 -- DrawCell 在绘制单元格的时候执行。 Form: 触发事件的窗口 示例 假定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 = "金额" ThenDim Val As Double = e.DataRow("金额") if Val > 5000 Then e.Style = "a" ElseIf Val > 4000 Then e.Style= "b" End If End If 如是DataList,也可以看帮助中的"DataList的颜色标记功能" [此贴子已经被作者于2009-6-10 13:01:00编辑过]
|
-- 作者:blackzhu -- 发布时间:2009/6/10 14:12:00 -- 以下是引用yangming在2009-6-10 13:00:00的发言:
DrawCell 在绘制单元格的时候执行。 Form: 触发事件的窗口 示例 假定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 = "金额" ThenDim Val As Double = e.DataRow("金额") if Val > 5000 Then e.Style = "a" ElseIf Val > 4000 Then e.Style= "b" End If End If 如是DataList,也可以看帮助中的"DataList的颜色标记功能" [此贴子已经被作者于2009-6-10 13:01:00编辑过] 我在datalist试出来了,但是试了以后我只能做到整张表的所要的数据用颜色显示,我想要效果是在筛选后标出.不是整个表都显示.我做不出来.比如我用这个代码筛选数据: with e.Form end with 举了例子,我筛选客户编号为"52033",筛选后"52033"用颜色表示出来.这个代码怎么写? |
-- 作者:狐狸爸爸 -- 发布时间:2009/6/10 14:22:00 -- 其实编程是很简单的,关键是怎么思考问题。 例如你这个问题,应该这么思考: 1、现在可以标记颜色了 2、问题是怎么标记我筛选的值? 3、换个说法,怎么让Drawcell事件知道我筛选的是那个值? 4、哦,这个简单,将筛选的值保存在全局变量中,这样任何事件都可以掉用,包括DrawCell事件。 5、还是不好,都是同一个窗口,也需要用全局变量吗? 6、是的,不需要,直接读取输入的筛选值就行啊,例如DataList的DrawCell事件设为: Dim Val As String = e.Form.Controls("输入筛选内容的文本框的名称").Value If e.ColName = "筛选列" Then If e.DataRow("筛选列") =Val e.Style = "a" End If End If |
-- 作者:blackzhu -- 发布时间:2009/6/10 14:41:00 -- 2、问题是怎么标记我筛选的值? 6、是的,不需要,直接读取输入的筛选值就行啊 我就这两个值不知道怎么写?还有你的代码我测试没有用. |
-- 作者:blackzhu -- 发布时间:2009/6/10 14:42:00 -- 按理有用啊,你的代码我也看得懂,但不起作用,奇怪. |
-- 作者:狐狸爸爸 -- 发布时间:2009/6/10 14:45:00 -- 一定有用的,除非你搞错了列名和样式名。 搞不定的话,就做个例子传上来看看。 [此贴子已经被作者于2009-6-10 14:47:27编辑过]
|
-- 作者:blackzhu -- 发布时间:2009/6/10 15:11:00 -- 以下是引用狐狸爸爸在2009-6-10 14:45:00的发言:
一定有用的,除非你搞错了列名和样式名。 搞不定的话,就做个例子传上来看看。 [此贴子已经被作者于2009-6-10 14:47:27编辑过] 搞定,要回车才行. |
-- 作者:狐狸爸爸 -- 发布时间:2009/6/10 15:15:00 -- |