以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 代码有误 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=68664) |
||||||||||||
-- 作者:blsu33 -- 发布时间:2015/5/22 10:25:00 -- 代码有误 老师, 下列代码写的有问题,麻烦老师给看下,那里有误
|
||||||||||||
-- 作者:Bin -- 发布时间:2015/5/22 10:26:00 -- 出现什么问题? 你想实现什么效果? |
||||||||||||
-- 作者:Bin -- 发布时间:2015/5/22 10:30:00 -- 根据你的代码 Values2是个数组 数租是没有Insert Replace 等这些函数的 你应该用LIST 集合 http://www.foxtable.com/help/topics/0217.htm |
||||||||||||
-- 作者:blsu33 -- 发布时间:2015/5/22 10:54:00 -- 老师, 角色重命名,希望替换权限里面的原来角色名称,怎么实现 希望在目录树的AfterEditNode 或是保存按钮中完成 替换 例如 角色财务经理 更改为财务 希望角色里面角色 更改为财务的同时,权限里面的同样更改
|
||||||||||||
-- 作者:Bin -- 发布时间:2015/5/22 10:56:00 -- 看3楼解释,是否能解决你问题 |
||||||||||||
-- 作者:大红袍 -- 发布时间:2015/5/22 11:02:00 -- For Each dr As DataRow In DataTables("角色").DataRows Dim str As String = "" For Each s As String In dr("角色").split("\\") If s = e.Node.Text Then str &= e.NewText & "\\" Else str &= s & "\\" End If Next dr("角色") = str.trim("\\") Next |
||||||||||||
-- 作者:blsu33 -- 发布时间:2015/5/22 11:33:00 -- 老师, AfterEditNode 代码如下,但是不起作用,求老师给看看 Dim dt As DataTable = DataTables("角色") Dim dr As DataRow Dim dr2 As DataRow If e.NewText = "" Then e.Cancel = True Else dr = dt.Find("角色 = \'" & e.NewText & "\'") \'判断新输入的分组是否存在 If dr IsNot Nothing \'如果存在,取消输入. MessageBox.Show("此角色已经存在!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information) e.cancel = True ElseIf e.Node.Nodes.Count>0 Then MessageBox.Show("存在下级,请删除下级后再修改!") e.Cancel = True Else For Each dr In dt.Select("角色 like \'\\" & e.NewText & "%\' Or 角色 Like \'%" & e.NewText & "\\\' or 角色 Like \'%\\" & e.NewText & "\\%\' or 角色 =\'" & e.NewText & "\'" )\'重命名分组 dr("角色") =dr("角色") .Replace(e.NewText,"") Next e.Node.Name = e.NewText \'使得节点的名称和标题保持一致. End If End If Dim Values() As String Dim Values2 As New List(Of String) For Each dr3 As DataRow In DataTables("角色").DataRows Values=dr3("角色").split("\\") For Index As Integer = 0 To Values.Length - 1 If Values2.Contains(Values(Index))=False Then Values2.Insert(0,Values(Index)) Else Values2.Remove(Values(Index)) End If Next Next For Each Values3 As String In Values2 Dim drs As List(Of DataRow) = DataTables("权限").Select("角色 like \'\\" & Values3 & "%\' Or 角色 Like \'%" & Values3 & "\\\' or 角色 Like \'%\\" & Values3 & "\\%\' or 角色 =\'" & Values3 & "\'" )\'重命名分组 For n As Integer = 0 To drs.Count - 1 If drs(n)("角色").Contains("Values3") drs(n)("角色") = drs(n)("角色").Replace(Values3,"") End If Next Next
|
||||||||||||
-- 作者:大红袍 -- 发布时间:2015/5/22 11:40:00 -- 不明你想做什么啊?看6楼代码。 |
||||||||||||
-- 作者:blsu33 -- 发布时间:2015/5/22 11:42:00 -- 大红袍, 6楼代码对角色的表有效果,但是对权限表,没有,能帮我再看看嘛。
![]() |
||||||||||||
-- 作者:大红袍 -- 发布时间:2015/5/22 11:53:00 -- 代码拷贝一份就行
For Each dr As DataRow In DataTables("角色").DataRows For Each dr As DataRow In DataTables("权限").DataRows |