Foxtable(狐表)用户栏目专家坐堂 → Datalist中显示的数据,如何找到指定的数据?


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

主题:Datalist中显示的数据,如何找到指定的数据?

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


加好友 发短信
等级:狐精 帖子:3313 积分:23134 威望:0 精华:1 注册:2009/3/31 11:25:00
Datalist中显示的数据,如何找到指定的数据?  发帖心情 Post By:2009/7/23 11:27:00 [只看该作者]

Datalist中显示的数据,如何找到指定列满足条件的数据的行。并光标或选定颜色区分(设为当前行),请教如何实现?

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


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

RowFilter

设置显示条件表达式,使用此属性时,DataList必须已经绑定好。

示例

例如希望单击某个按钮,DataList只显示华北地区的客户:

Dim dst As WinForm.DataList = e.Form.Controls("DataList1")
dst
.RowFilter = "[地区] = '华北'"

区域选定颜色可能不行,本身DataList自带颜色

[此贴子已经被作者于2009-7-23 11:39:16编辑过]

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


加好友 发短信
等级:狐精 帖子:3313 积分:23134 威望:0 精华:1 注册:2009/3/31 11:25:00
  发帖心情 Post By:2009/7/23 12:12:00 [只看该作者]

例如,我已找到相关行,行号为2,如何使用此行为当前行,目的就是为了得到选定行的颜色,因为不能自行设置颜色。为了区分找到行是哪一行?

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


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

Find好象不能用在DataList中,你可以用筛选,筛选出来的行显示在DataList中不行吗?

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


加好友 发短信
等级:狐精 帖子:3313 积分:23134 威望:0 精华:1 注册:2009/3/31 11:25:00
  发帖心情 Post By:2009/7/23 12:23:00 [只看该作者]

不行的,如行的话,就不会这样折腾了!

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


加好友 发短信
等级:狐精 帖子:3313 积分:23134 威望:0 精华:1 注册:2009/3/31 11:25:00
  发帖心情 Post By:2009/7/23 12:29:00 [只看该作者]

还是老大能提供选定行进行着色就好了!不知老大是否有更大目标及思路来解决Datalist目录遇到一些问题。因目前Datalist与Table是各有优点及特点,两者都不能缺。但有些功能又受限呀。


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


加好友 发短信
等级:狐精 帖子:3313 积分:23134 威望:0 精华:1 注册:2009/3/31 11:25:00
  发帖心情 Post By:2009/7/23 12:54:00 [只看该作者]

已OK!

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


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

以下是引用baoxyang在2009-7-23 12:54:00的发言:
已OK!

介绍一下你的办法,可否?


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


加好友 发短信
等级:狐精 帖子:3313 积分:23134 威望:0 精华:1 注册:2009/3/31 11:25:00
  发帖心情 Post By:2009/7/23 15:19:00 [只看该作者]

Dim dst As WinForm.DataList = e.Form.Controls("DataList1")
    Dim dr as DataRow = dst.Current '获得选定行
    If dr Is Nothing Then
          Return
    End If
If e.Control = True then
    dim r as integer = dst.Position
    If dst.GetChecked(r) = false Then
       dst.SetChecked(r, True)
       e.form.controls("textbox16").value = e.form.controls("textbox16").value + dr("重量")
       e.form.controls("textbox17").value = e.form.controls("textbox17").value + dr("件数")
    end if
end if
If e.Alt = True then
    dim r as integer = dst.Position
    If dst.GetChecked(r) = true Then
       dst.SetChecked(r, false)
       e.form.controls("textbox16").value = e.form.controls("textbox16").value - dr("重量")
       e.form.controls("textbox17").value = e.form.controls("textbox17").value - dr("件数")
    end if
end if

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


加好友 发短信
等级:狐精 帖子:3313 积分:23134 威望:0 精华:1 注册:2009/3/31 11:25:00
  发帖心情 Post By:2009/7/23 15:25:00 [只看该作者]

发错了,Sorry!下面是
dim ss as string
If e.KeyCode = Keys.Enter then 
    Dim dst As WinForm.DataList = Forms("出库加").Controls("DataList1")     
    dim s as string = e.Sender.text
    For i as integer = 0 to dst.count -1
       Dim dr as DataRow = dst.GetDataRow(i)
       if dr("捆包号") = s then
          If dst.GetChecked(i) Then
             ss = "找到相关记录!该行之前已被选定!!"
          else
             dst.SetChecked(i, True)
             ss = "找到相关记录!默认已选定该行!!"
             Forms("出库加").Controls("textbox16").value = Forms("出库加").Controls("textbox16").value + dr("重量")
             Forms("出库加").Controls("textbox17").value = Forms("出库加").Controls("textbox17").value + dr("件数")           
          end if
          dst.position = i
          exit for
       end if  
    Next
    if ss Is nothing then
       ss = "未找到相关记录,请重新查找!"
    end if
     e.Cancel = True
end if
e.form.controls("textbox2").value = ss

 回到顶部