以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 【求助】数据字典 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=96416) |
-- 作者:10059 -- 发布时间:2017/2/20 14:49:00 -- 【求助】数据字典 老师,请问在listview中怎么用数据字典的“值”进行分组显示数据?? |
-- 作者:有点色 -- 发布时间:2017/2/20 15:29:00 -- 你的数据字典,是使用某表的数据,还是直接编写各个值?
无论哪一种,都是不能直接获取数据处理的。你需要额外的定义一个字典变量 dic 来处理分组。
具体问题上传实例。 |
-- 作者:10059 -- 发布时间:2017/2/20 16:30:00 -- |
-- 作者:有点色 -- 发布时间:2017/2/20 18:06:00 -- Dim lvw As WinForm.ListView = e.Form.Controls("ListView1") lvw.StopRedraw() \'停止绘制 lvw.Groups.Clear() \'清除原来的分组 lvw.Columns.Clear() \'清除原来的列 lvw.Rows.Clear() \'清除原来的行 \' lvw.Images.Clear() \'清除原来的图片 lvw.View = ViewMode.Details \'显示模式为详细信息 lvw.Images.AddSmallImage("Man", "Man.ico") \'添加代表男性的图标 lvw.Images.AddSmallImage("Woman", "Woman.ico") \'添加代表女性的图标 Dim cls() As String = {"姓名","性别","地址"} \'指定要显示的各列 Dim wds() As Integer = {100,130,80} \'定义列宽 For i As Integer = 0 To cls.Length - 1 Dim c As WinForm.ListViewColumn = lvw.Columns.Add() c.Name = cls(i) \'指定列名 c.Text = cls(i)\'指定列标题 c.Width = wds(i) \'指定列宽 Next Dim dic As new Dictionary(Of String, String) For Each zh As String In DataTables("信息").GetValues("部门", "部门 is not null") \'增加分组 Dim grp As WinForm.ListViewGroup = lvw.Groups.Add() Dim fdr As DataRow = DataTables("编码").find("编号 = \'" & zh & "\'") dic.add(zh, fdr("部门")) grp.Name = fdr("部门") grp.Text = fdr("部门") Next For Each dr As DataRow In DataTables("信息").Select("部门 is not null") \'从数据表中提取数据 Dim vr As WinForm.ListViewRow = lvw.Rows.Add() \'增加一行 vr.Group = dic(dr("部门")) \'指定所属分组 For Each cl As String In cls \'逐列取值 vr(cl) = dr(cl) Next If dr("性别") = "男" Then \'设置分组 vr.ImageKey = "Man" Else vr.ImageKey = "Woman" End If vr.Tag= dr \'将DataRow赋值给ListViewRow的Tag属性,将二者联系起来 Next lvw.ResumeRedraw() \'恢复绘制 |
-- 作者:10059 -- 发布时间:2017/2/21 9:51:00 -- 谢谢老师 老师,我还想问一下,编辑窗口的文本框可以绑定到字典的“值”??即将下图部门的“006” 变成“技术部” |
-- 作者:有点蓝 -- 发布时间:2017/2/21 10:47:00 -- DropBox2的DataFormat事件 If e.Value > "" Then Dim dr As DataRow = DataTables("编码").Find("编号=\'" & e.Value & "\'") If dr IsNot Nothing Then e.Text = dr("部门") End If |
-- 作者:10059 -- 发布时间:2017/2/21 11:46:00 -- 谢谢老师 |