当前位置:首页 > 网络编程 > WEB编程 > ASP.net >  ASP.NET中不定级动态菜单的实现

 ASP.NET中不定级动态菜单的实现

点击次数:25 次 发布日期:2008-11-26 13:48:48 作者:源代码网
源代码网推荐      作者:xiangwa 出处:CSDN
源代码网推荐  
源代码网推荐   前日,根据客户需要,要根据如下的表动态生成如下的菜单:表中的数据是动态更新的。
源代码网推荐  
源代码网推荐    我们平时IEWebContr来做菜单时都是在html中直接输入,也就是说是静态的,现在要做成动态的,而且菜单级数不定,怎么来实现呢?笔者通过研究发现,用IEWebContr来做菜单时,菜单项可以直接输入,也可以用如下的方法指定从某一个文件中读取菜单项:
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  <iewc:TreeView runat="server" ID="Treeview1" NAME="Treeview1">
源代码网推荐    <iewc:TreeNode id="Treenode1" runat="server" TreeNodeSrc="http://www.zzchn.com/edu/20080727/menuone.txt" Expanded="True" Text="信息类别列表"></iewc:TreeNode>
源代码网推荐    </iewc:TreeView>
源代码网推荐  
源代码网推荐    其中http://www.zzchn.com/edu/20080727/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>
源代码网推荐  
源代码网推荐  
源代码网推荐    现在的问题变成了如何将数据表根据“类别号”修改http://www.zzchn.com/edu/20080727/menuone.txt文件。将该过程放在对数据表修改后进行。下面是根据表的内容生成http://www.zzchn.com/edu/20080727/menuone.txt的源代码:
源代码网推荐  
源代码网推荐  
源代码网推荐     Imports System.IO
源代码网推荐    Dim txtwriter As StreamWriter
源代码网推荐    txtwriter = File.CreateText(Server.MapPathstrpath ("http://www.zzchn.com/edu/20080727/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="xxcb_add.aspx?classname=" & strname & "" & strand & "classid=" & strid & "" Target="main1">")
源代码网推荐    Case Is = 0
源代码网推荐    txtwriter.WriteLine("<treenode text="" & strname & "" NavigateUrl="xxcb_add.aspx?classname=" & strname & "" & strand & "classid=" & strid & "" Target="main1"/>")
源代码网推荐    Case Is < 0
源代码网推荐    txtwriter.WriteLine("<treenode text="" & strname & "" NavigateUrl="xxcb_add.aspx?classname=" & strname & "" & strand & "classid=" & strid & "" Target="main1"/>")
源代码网推荐    "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="xxcb_add.aspx?classname=" & strname & "" & strand & "classid=" & strid & "" Target="main1"/>")
源代码网推荐    "txtwriter.WriteLine("</treenode>")
源代码网推荐  
源代码网推荐    m = Len(strid) / 2
源代码网推荐  
源代码网推荐    While m > 1
源代码网推荐    txtwriter.WriteLine("</treenode>")
源代码网推荐    m = m - 1
源代码网推荐    End While
源代码网推荐    Case Is = 0
源代码网推荐    txtwriter.WriteLine("<treenode text="" & strname & "" NavigateUrl="xxcb_add.aspx?classname=" & strname & "" & strand & "classid=" & strid & "" Target="main1"/>")
源代码网推荐    "txtwriter.WriteLine("</treenode>")
源代码网推荐    m = Len(strid) / 2
源代码网推荐  
源代码网推荐    While m > 1
源代码网推荐    txtwriter.WriteLine("</treenode>")
源代码网推荐    m = m - 1
源代码网推荐    End While
源代码网推荐    Case Is <= 0
源代码网推荐    txtwriter.WriteLine("<treenode text="" & strname & "" NavigateUrl="xxcb_add.aspx?classname=" & strname & "" & strand & "classid=" & strid & "" Target="main1"/>")
源代码网推荐    "txtwriter.WriteLine("</treenode>")
源代码网推荐  
源代码网推荐    m = Len(strid) / 2
源代码网推荐  
源代码网推荐    While m > 1
源代码网推荐    txtwriter.WriteLine("</treenode>")
源代码网推荐    m = m - 1
源代码网推荐    End While
源代码网推荐  
源代码网推荐    End Select
源代码网推荐    txtwriter.WriteLine("</TREENODES>")
源代码网推荐    txtwriter.Close()
源代码网推荐  
源代码网推荐  
源代码网推荐    这样http://www.zzchn.com/edu/20080727/menuone.txt就按要求生成了菜单源文件。
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐    做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。
源代码网推荐


源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华