前日,根据客户需要,要根据如下的表动态生成如下的菜单:表中的数据是动态更新的。
我们平时IEWebContr来做菜单时都是在html中直接输入,也就是说是静态的,现在要做成动态的,而且菜单级数不定,怎么来实现呢?笔者通过研究发现,用 IEWebContr来做菜单时,菜单项可以直接输入,也可以用如下的方法指定从某一个文件中读取菜单项: P>
〈iewc:TreeView runat="server" ID="Treeview1" NAME="Treeview1"〉 〈iewc:TreeNode id="Treenode1" runat="server" TreeNodeSrc="menuone.txt" Expanded="True" Text="信息类别列表" 〉〈/iewc:TreeNode〉 〈/iewc:TreeView〉
其中menuone.txt的内容如下:
〈TREENODES〉 〈treenode text=''''蔬菜'''' NavigateUrl=''''xxcb_add.aspx?classname=蔬菜&classid=01''''? Target=''''main1''''〉 〈treenode text=''''白菜'''' NavigateUrl=''''xxcb_add.aspx?classname=白菜&classid=0101''''?? Target=''''main1''''/〉 〈treenode text=''''萝卜'''' NavigateUrl=''''xxcb_add.aspx?classname=萝卜&classid=0102''''?? Target=''''main1''''/〉 〈treenode text=''''黄花菜'''' NavigateUrl=''''xxcb_add.aspx?classname=黄花菜&classid=0103''''?? Target=''''main1''''/〉 〈/treenode〉 〈treenode text=''''水果'''' NavigateUrl=''''xxcb_add.aspx?classname=水果&classid=02''''? Target=''''main1''''〉 〈treenode text=''''苹果'''' NavigateUrl=''''xxcb_add.aspx?classname=苹果&classid=0201''''? Target=''''main1''''〉 〈treenode text=''''红富士'''' NavigateUrl=''''xxcb_add.aspx?classname=红富士&classid=020101''''?? Target=''''main1''''/〉 〈treenode text=''''其它苹果'''' NavigateUrl=''''xxcb_add.aspx?classname=其它苹果&classid=020102''''?? Target=''''main1''''/〉 〈/treenode〉 〈treenode text=''''桃子'''' NavigateUrl=''''xxcb_add.aspx?classname=桃子&classid=0202''''?? Target=''''main1''''/〉 〈treenode text=''''荔枝'''' NavigateUrl=''''xxcb_add.aspx?classname=荔枝&classid=0203''''?? Target=''''main1''''/〉 〈/treenode〉 〈treenode text=''''粮食'''' NavigateUrl=''''xxcb_add.aspx?classname=粮食&classid=03''''? Target=''''main1''''〉 〈treenode text=''''大米'''' NavigateUrl=''''xxcb_add.aspx?classname=大米&classid=0301''''?? Target=''''main1''''/〉 〈treenode text=''''玉米'''' NavigateUrl=''''xxcb_add.aspx?classname=玉米&classid=0302''''?? Target=''''main1''''/〉 〈/treenode〉 〈/TREENODES〉
&n bsp;现在的问题变成了如何将数据表根据“类别号”修改menuone.txt文件。将该过程放在对数据表修改后进行。下面是根据表的内容生成menuone.txt的源代码: Imports System.IO Dim txtwriter As StreamWriter txtwriter = File.CreateText(Server.MapPath("menuone.txt")) txtwriter.WriteLine("<TREENODES>")
Dim objConn As OleDbConnection Dim objCmd As OleDbCommand Dim objRead As OleDbDataReader Dim strSQL, strDSN As String Dim strid, strname, strid1, strname1 As String Dim strand As String strand = "&"
Dim i, j, k, m As Integer i = 0 j = 0 k = 0 m = 0
strSQL = "select * from class order by classid "
objConn = New OleDbConnection(ConfigurationSettings.AppSettings("connString")) objCmd = New OleDbCommand(strSQL, objConn) objCmd.Connection.Open() objRead = objCmd.ExecuteReader()
While objRead.Read()
If j = 0 Then j = Len(Trim(objRead.Item("classid"))) Else strid = strid1 strname = strname1 i = Len(Trim(objRead.Item("classid")))
k = i - j
Select Case k Case Is > 0 txtwriter.WriteLine("<treenode text=''''" & strname & "'''' NavigateUrl=''''adminclass_add.aspx?classname=" & strname & "" & strand & "classid=" & strid & "'''' Target=''''main2''''>") Case Is = 0 txtwriter.WriteLine("<treenode text=''''" & strname & "'''' NavigateUrl=''''adminclass_add.aspx?classname=" & strname & "" & strand & "classid=" & strid & "'''' Target=''''main2''''/>") Case Is < 0 txtwriter.WriteLine("<treenode text=''''" & strname & "'''' NavigateUrl=''''adminclass_add.aspx?classname=" & strname & "" & strand & "classid=" & strid & "'''' Target=''''main2''''/>") ''''txtwriter.WriteLine("</treenode>")
m = k While m < 0 txtwriter.WriteLine("</treenode>") m = m + 2 End While
End Select
j = Len(Trim(objRead.Item("classid")))
End If
strid1 = Trim(objRead.Item("classid")) strname1 = Trim(objRead.Item("classname"))
End While
''''strid = strid1 ''''strname = strname1 i = Len(strid) k = j - i strid = strid1 strname = strname1 Select Case k Case Is > 0 txtwriter.WriteLine("<treenode text=''''" & strname & "'''' NavigateUrl=''''adminclass_add.aspx?classname=" & strname & "" & strand & "classid=" & strid & "'''' Target=''''main2''''/>") ''''txtwriter.WriteLine("</treenode>")
m = Len(strid) / 2
While m > 1 txtwriter.WriteLine("</treenode>") m = m - 1 End While Case Is = 0 [1] [2] [3] 下一页 [C语言系列]NET 中C#的switch语句的语法 [系统软件]托拽Explore中的文件到VB.net的窗口 [系统软件]Boost库在XP+Visual C++.net中的安装 [常用软件]新配色面板:Paint.Net3.0RC1官方下载 [常用软件]用内建的“Net Meeting”聊天 [VB.NET程序]Henry的VB.NET之旅(三)—共享成员 [VB.NET程序]Henry的VB.NET之旅(二)—构造与析构 [VB.NET程序]Henry的VB.NET之旅(一)—失踪的窗体 [VB.NET程序]在托盘上显示Balloon Tooltip(VB.NET) [VB.NET程序]Henry手记-VB.NET中动态加载Treeview节点(二)
|