Foxtable(狐表)用户栏目专家坐堂 → listview的问题(已联系客服远程解决)


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

主题:listview的问题(已联系客服远程解决)

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


加好友 发短信
等级:幼狐 帖子:186 积分:1294 威望:0 精华:0 注册:2011/8/17 17:29:00
listview的问题(已联系客服远程解决)  发帖心情 Post By:2015/5/16 15:31:00 [显示全部帖子]

结合权限的代码设置后,老是多添加一组出来,如图

添加分组的代码标红,老是自动添加一组名为Default的组出来,怎么去掉呢?


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20150516152535.jpg
图片点击可在新窗口打开查看
Dim qcr As DataRow = DataTables("用户表").SQLFind("用户名 = '" & _User & "'")
Functions.Execute("动态添加lable")
e.Form.BackColor = SystemColors.GradientInactiveCaption
Dim lvw As WinForm.ListView = Forms("主界面").Controls("ListView1")
Dim Nav As WinForm.NavBar = Forms("主界面").Controls("NavBar1")
If _User <> "管理员"
    '隐藏未编辑项目
    For Each pg As WinForm.NavPage In Nav.NavPages
        Dim pgn As String = pg.Name
        Dim dr As DataRow = DataTables("授权表").SQLFind("模块名称 = '" & pgn & "' And 对象窗口 is NUll And 对象名称 Is Null")
        If dr IsNot Nothing
            Dim uss As String = dr("被授权人")
            If uss.Contains(_User) = True OrElse uss.Contains(qcr("职位")) = True
      pg.Visible = True
Else
pg.Visible = False
            End If
Else
pg.Visible = False
        End If
    Next
    ''''-----------------------
    lvw.StopRedraw() '暂停绘制
    lvw.Rows.Clear() '清除原来的行
    lvw.Images.Clear() '清除原来的图片
    lvw.View = ViewMode.LargeIcon '显示模式为大图标
    lvw.Images.LargeSize = New Size(32,32) '定义大图标尺寸
    lvw.MultiSelect = False
    Dim nms As List(of String) = DataTables("导航菜单").GetValues("模块名称")
    For Each nm As String In nms '添加分组
        Dim grp As WinForm.ListViewGroup = lvw.Groups.Add()
        '====
        Dim dr As DataRow = DataTables("授权表").SQLFind("模块名称 = '" & nm & "' And 对象窗口 is NUll And 对象名称 Is Null")
        If dr IsNot Nothing
            Dim uss As String = dr("被授权人")
            If uss.Contains(_User) = True OrElse uss.Contains(qcr("职位")) = True
                'MessageBox.show(nm)
                grp.Name = nm
                grp.Text = nm
            End If
        End If
        '===
    Next
    For Each dr As DataRow In DataTables("导航菜单").DataRows '从数据表中提取数据
        Dim vr As  WinForm.ListViewRow =  lvw.Rows.Add() '增加一行
        Dim Key As String = dr("图标地址")'获取此员工的照片文件
        lvw.Images.AddLargeImage(key,key) '添加照片,直接用文件名作为图片键值
        Dim ccr As DataRow = DataTables("授权表").SQLfind("对象窗口 = '" & dr("元素名称") & "' And 对象名称 is null")
        If ccr IsNot Nothing
            Dim uss As String = ccr("被授权人")
            If uss.Contains(_User) = True OrElse uss.Contains(qcr("职位")) = True
                vr.Group = dr("模块名称")
                vr.Text = dr("元素名称")  '设置标题
                vr.ImageKey = key '设置图片键值
                vr.ToolTipText = dr("功能概述")
            End If
        End If
    Next
    lvw.ResumeRedraw() '恢复绘制
    '===========================================================
Else
    lvw.StopRedraw() '暂停绘制
    lvw.Rows.Clear() '清除原来的行
    lvw.Images.Clear() '清除原来的图片
    lvw.View = ViewMode.LargeIcon '显示模式为大图标
    lvw.Images.LargeSize = New Size(32,32) '定义大图标尺寸
    lvw.MultiSelect = False
    Dim nms As List(of String) = DataTables("导航菜单").GetValues("模块名称")
    For Each nm As String In nms '添加分组
        Dim grp As WinForm.ListViewGroup = lvw.Groups.Add()
        grp.Name = nm
        grp.Text = nm
    Next
    For Each dr As DataRow In DataTables("导航菜单").DataRows '从数据表中提取数据
        Dim vr As  WinForm.ListViewRow =  lvw.Rows.Add() '增加一行
        Dim Key As String = dr("图标地址")'获取此员工的照片文件
        lvw.Images.AddLargeImage(key,key) '添加照片,直接用文件名作为图片键值
        vr.Group = dr("模块名称")
        vr.Text = dr("元素名称")  '设置标题
        vr.ImageKey = key '设置图片键值
        vr.ToolTipText = dr("功能概述")
    Next
    lvw.ResumeRedraw() '恢复绘制
End If


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


加好友 发短信
等级:幼狐 帖子:186 积分:1294 威望:0 精华:0 注册:2011/8/17 17:29:00
  发帖心情 Post By:2015/5/16 15:37:00 [显示全部帖子]

 show过了,没有

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


加好友 发短信
等级:幼狐 帖子:186 积分:1294 威望:0 精华:0 注册:2011/8/17 17:29:00
  发帖心情 Post By:2015/5/16 15:47:00 [显示全部帖子]

晕了,注释后直接没分组了

删除也删除不了

 For Each nm As String In nms '添加分组
        MessageBox.show(nm)
        Dim grp As WinForm.ListViewGroup = lvw.Groups.Add()
        '====
        Dim dr As DataRow = DataTables("授权表").SQLFind("模块名称 = '" & nm & "' And 对象窗口 is NUll And 对象名称 Is Null")
        If dr IsNot Nothing
            Dim uss As String = dr("被授权人")
            If uss.Contains(_User) = True OrElse uss.Contains(qcr("职位")) = True
                grp.Name = nm
                grp.Text = nm
            End If
        End If
        '===
        lvw.Groups.Delete("Default")
    Next


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


加好友 发短信
等级:幼狐 帖子:186 积分:1294 威望:0 精华:0 注册:2011/8/17 17:29:00
  发帖心情 Post By:2015/5/16 15:51:00 [显示全部帖子]

这个好复杂啊,要不我发源代码给你

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


加好友 发短信
等级:幼狐 帖子:186 积分:1294 威望:0 精华:0 注册:2011/8/17 17:29:00
  发帖心情 Post By:2015/5/16 15:58:00 [显示全部帖子]

真的好复杂,因为我是用两张表来控制listview的,加了授权表的代码后就不正常了,我发官方的QQ可以不

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


加好友 发短信
等级:幼狐 帖子:186 积分:1294 威望:0 精华:0 注册:2011/8/17 17:29:00
  发帖心情 Post By:2015/5/16 16:01:00 [显示全部帖子]

一般来说是nms这里有空值才有啊,我检查了没有啊

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


加好友 发短信
等级:幼狐 帖子:186 积分:1294 威望:0 精华:0 注册:2011/8/17 17:29:00
  发帖心情 Post By:2015/5/16 16:37:00 [显示全部帖子]

感谢小余耐心的远程

 回到顶部