Rss & SiteMap

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

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

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

1楼
baoxyang 发表于:2009/7/23 11:27:00
Datalist中显示的数据,如何找到指定列满足条件的数据的行。并光标或选定颜色区分(设为当前行),请教如何实现?
2楼
yangming 发表于: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编辑过]
3楼
baoxyang 发表于:2009/7/23 12:12:00
例如,我已找到相关行,行号为2,如何使用此行为当前行,目的就是为了得到选定行的颜色,因为不能自行设置颜色。为了区分找到行是哪一行?
4楼
yangming 发表于:2009/7/23 12:17:00
Find好象不能用在DataList中,你可以用筛选,筛选出来的行显示在DataList中不行吗?
5楼
baoxyang 发表于:2009/7/23 12:23:00
不行的,如行的话,就不会这样折腾了!
6楼
baoxyang 发表于:2009/7/23 12:29:00

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

7楼
baoxyang 发表于:2009/7/23 12:54:00
已OK!
8楼
yangming 发表于:2009/7/23 13:02:00
以下是引用baoxyang在2009-7-23 12:54:00的发言:
已OK!

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

9楼
baoxyang 发表于: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
10楼
baoxyang 发表于: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
共10 条记录, 每页显示 10 条, 页签: [1]

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

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