以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- Datalist中显示的数据,如何找到指定的数据? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=3675) |
-- 作者:baoxyang -- 发布时间:2009/7/23 11:27:00 -- Datalist中显示的数据,如何找到指定的数据? Datalist中显示的数据,如何找到指定列满足条件的数据的行。并光标或选定颜色区分(设为当前行),请教如何实现? |
-- 作者:yangming -- 发布时间:2009/7/23 11:38:00 -- RowFilter 设置显示条件表达式,使用此属性时,DataList必须已经绑定好。 示例 例如希望单击某个按钮,DataList只显示华北地区的客户: Dim dst As WinForm.DataList = e.Form.Controls("DataList1") [此贴子已经被作者于2009-7-23 11:39:16编辑过]
|
-- 作者:baoxyang -- 发布时间:2009/7/23 12:12:00 -- 例如,我已找到相关行,行号为2,如何使用此行为当前行,目的就是为了得到选定行的颜色,因为不能自行设置颜色。为了区分找到行是哪一行? |
-- 作者:yangming -- 发布时间:2009/7/23 12:17:00 -- Find好象不能用在DataList中,你可以用筛选,筛选出来的行显示在DataList中不行吗? |
-- 作者:baoxyang -- 发布时间:2009/7/23 12:23:00 -- 不行的,如行的话,就不会这样折腾了! |
-- 作者:baoxyang -- 发布时间:2009/7/23 12:29:00 -- 还是老大能提供选定行进行着色就好了!不知老大是否有更大目标及思路来解决Datalist目录遇到一些问题。因目前Datalist与Table是各有优点及特点,两者都不能缺。但有些功能又受限呀。 |
-- 作者:baoxyang -- 发布时间:2009/7/23 12:54:00 -- 已OK! |
-- 作者:yangming -- 发布时间:2009/7/23 13:02:00 -- 以下是引用baoxyang在2009-7-23 12:54:00的发言:
已OK! 介绍一下你的办法,可否? |
-- 作者: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 |
-- 作者: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 |