【Vegas原创】TreeView操作数据库的使用方法(VB)
2014-05-22 15:43
627 查看
Dim dbAccess As New DBAccess
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
PopulateNodes(TreeView1.Nodes, 0)
End If
End Sub
Protected Sub TreeView1_TreeNodePopulate(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.TreeNodeEventArgs) Handles TreeView1.TreeNodePopulate
PopulateNodes(e.Node.ChildNodes, e.Node.Value)
End Sub
Public Sub PopulateNodes(ByVal nodes As TreeNodeCollection, Optional ByVal intParentID As Int32 = 0)
Dim dt As New DataTable()
dt = GetTreeTable()
Dim strExpression As String
strExpression = "[parentID] = " & intParentID
Dim foundRows() As DataRow
foundRows = dt.Select(strExpression)
Dim I As Integer
For I = 0 To foundRows.GetUpperBound(0)
Dim tn As New TreeNode()
tn.Text = foundRows(I).Item("TableName").ToString()
tn.Value = foundRows(I).Item("ID").ToString()
tn.NavigateUrl = foundRows(I).Item("url").ToString()
tn.Target = foundRows(I).Item("target").ToString()
tn.CollapseAll()
tn.Expand()
Dim dr() As DataRow
dr = dt.Select("[parentID] = " & tn.Value)
If dr.GetUpperBound(0) > -1 Then
tn.PopulateOnDemand = True
End If
nodes.Add(tn)
Next
End Sub
Public Function GetTreeTable() As DataTable
Dim dt As New DataTable()
Dim ds As New DataSet()
'''''''''''''''''''''''''TreeView Visible ~~~~~~~~~~~~~~~~~~~~~~@#@!~~~ by Vegas
Dim cookies As HttpCookie
cookies = Request.Cookies("PAS")
Dim workid As String = cookies("Emp_No")
Dim strPa_Rank As String = cookies("Job_Rank")
Dim super_user As String = cookies("Super_User")
If Integer.Parse(strPa_Rank) > 30 Then
If Integer.Parse(super_user) = 0 Then
dt = dbAccess.GetDataTable("select * from treeview where id<>2 and id<>4 order by id")
HttpContext.Current.Cache.Insert("Treeview", dt)
Else
dt = dbAccess.GetDataTable("select * from treeview order by id")
HttpContext.Current.Cache.Insert("Treeview", dt)
End If
Else
If Integer.Parse(super_user) = 0 Then
dt = dbAccess.GetDataTable("select * from treeview where id<>2 order by id")
HttpContext.Current.Cache.Insert("Treeview", dt)
Else
dt = dbAccess.GetDataTable("select * from treeview order by id")
HttpContext.Current.Cache.Insert("Treeview", dt)
End If
End If
Return dt
End Function
End Class
表结构:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
PopulateNodes(TreeView1.Nodes, 0)
End If
End Sub
Protected Sub TreeView1_TreeNodePopulate(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.TreeNodeEventArgs) Handles TreeView1.TreeNodePopulate
PopulateNodes(e.Node.ChildNodes, e.Node.Value)
End Sub
Public Sub PopulateNodes(ByVal nodes As TreeNodeCollection, Optional ByVal intParentID As Int32 = 0)
Dim dt As New DataTable()
dt = GetTreeTable()
Dim strExpression As String
strExpression = "[parentID] = " & intParentID
Dim foundRows() As DataRow
foundRows = dt.Select(strExpression)
Dim I As Integer
For I = 0 To foundRows.GetUpperBound(0)
Dim tn As New TreeNode()
tn.Text = foundRows(I).Item("TableName").ToString()
tn.Value = foundRows(I).Item("ID").ToString()
tn.NavigateUrl = foundRows(I).Item("url").ToString()
tn.Target = foundRows(I).Item("target").ToString()
tn.CollapseAll()
tn.Expand()
Dim dr() As DataRow
dr = dt.Select("[parentID] = " & tn.Value)
If dr.GetUpperBound(0) > -1 Then
tn.PopulateOnDemand = True
End If
nodes.Add(tn)
Next
End Sub
Public Function GetTreeTable() As DataTable
Dim dt As New DataTable()
Dim ds As New DataSet()
'''''''''''''''''''''''''TreeView Visible ~~~~~~~~~~~~~~~~~~~~~~@#@!~~~ by Vegas
Dim cookies As HttpCookie
cookies = Request.Cookies("PAS")
Dim workid As String = cookies("Emp_No")
Dim strPa_Rank As String = cookies("Job_Rank")
Dim super_user As String = cookies("Super_User")
If Integer.Parse(strPa_Rank) > 30 Then
If Integer.Parse(super_user) = 0 Then
dt = dbAccess.GetDataTable("select * from treeview where id<>2 and id<>4 order by id")
HttpContext.Current.Cache.Insert("Treeview", dt)
Else
dt = dbAccess.GetDataTable("select * from treeview order by id")
HttpContext.Current.Cache.Insert("Treeview", dt)
End If
Else
If Integer.Parse(super_user) = 0 Then
dt = dbAccess.GetDataTable("select * from treeview where id<>2 order by id")
HttpContext.Current.Cache.Insert("Treeview", dt)
Else
dt = dbAccess.GetDataTable("select * from treeview order by id")
HttpContext.Current.Cache.Insert("Treeview", dt)
End If
End If
Return dt
End Function
End Class
表结构:
id | parentID | tableName | url | target | expanded |
1 | 0 | 绩效考核系统 | |||
2 | 1 | 管理者设定 |
相关文章推荐
- 【Vegas原创】TreeView操作数据库的使用方法(VB)
- VB使用ADODB操作数据库的常用方法
- VB使用ADODB操作数据库的常用方法
- 【Vegas原创】ORA-01194解决方法:使用在线日志恢复数据库
- VB使用ADO操作数据库的常用方法
- 【Vegas原创】ORA-01194解决方法:使用在线日志恢复数据库
- VB使用ADODB操作数据库的常用方法
- VB使用ADODB操作数据库的常用方法
- VB使用ADODB操作数据库的常用方法
- [原创]谈谈vb中使用数据库的一点小问题
- 【原创】C#控件TreeView与数据库的操作
- 数据库操作中(T-SQL)经常会用到命令及使用方法
- asp.net使用参数(parameters)的方法执行数据库操作例子
- VC中使用ADO操作数据库的方法(转)
- 【Vegas原创】访问owa,图片和js脚本不能正常显示和使用的解决方法
- VC中使用ADO操作数据库的方法
- 单独使用MFC CRecord类进行数据库操作(原创心得)
- [原创]一个可以操作多数据库服务器的事务方法
- 【Vegas原创】treeview经典使用-checkbox联动存储读取(c#版)
- 【Vegas原创】使用GreenAMP时,提示“无法载入mysql扩展”解决方法