欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【ASP.NET中不定级动态菜单的实现】,下面是详细的分享!
ASP.NET中不定级动态菜单的实现
作者:xiangwa出处:CSDN
前日,根据客户需要,要根据如下的表动态生成如下的菜单:表中的数据是动态更新的。
我们平时IEWebContr来做菜单时都是在html中直接输入,也就是说是静态的,现在要做成动态的,而且菜单级数不定,怎么来实现呢?笔者通过研究发现,用IEWebContr来做菜单时,菜单项可以直接输入,也可以用如下的方法指定从某一个文件中读取菜单项:
<iewc:TreeNodeid="Treenode1"runat="server"TreeNodeSrc="menuone.txt"Expanded="True"Text="信息类别列表"></iewc:TreeNode>
</iewc:TreeView>
其中menuone.txt的内容如下:
<treenodetext='蔬菜'NavigateUrl='xxcb_add.aspx?classname=蔬菜&classid=01'?Target='main1'>
<treenodetext='白菜'NavigateUrl='xxcb_add.aspx?classname=白菜&classid=0101'Target='main1'/>
<treenodetext='萝卜'NavigateUrl='xxcb_add.aspx?classname=萝卜&classid=0102'Target='main1'/>
<treenodetext='黄花菜'NavigateUrl='xxcb_add.aspx?classname=黄花菜&classid=0103'Target='main1'/>
</treenode>
<treenodetext='水果'NavigateUrl='xxcb_add.aspx?classname=水果&classid=02'?Target='main1'>
<treenodetext='苹果'NavigateUrl='xxcb_add.aspx?classname=苹果&classid=0201'?Target='main1'>
<treenodetext='红富士'NavigateUrl='xxcb_add.aspx?classname=红富士&classid=020101'Target='main1'/>
<treenodetext='其它苹果'NavigateUrl='xxcb_add.aspx?classname=其它苹果&classid=020102'Target='main1'/>
</treenode>
<treenodetext='桃子'NavigateUrl='xxcb_add.aspx?classname=桃子&classid=0202'Target='main1'/>
<treenodetext='荔枝'NavigateUrl='xxcb_add.aspx?classname=荔枝&classid=0203'Target='main1'/>
</treenode>
<treenodetext='粮食'NavigateUrl='xxcb_add.aspx?classname=粮食&classid=03'?Target='main1'>
<treenodetext='大米'NavigateUrl='xxcb_add.aspx?classname=大米&classid=0301'Target='main1'/>
<treenodetext='玉米'NavigateUrl='xxcb_add.aspx?classname=玉米&classid=0302'Target='main1'/>
</treenode>
</TREENODES>
ImportsSystem.IO
DimtxtwriterAsStreamWriter
txtwriter=File.CreateText(Server.MapPathstrpath("\menuone.txt"))
txtwriter.WriteLine("<TREENODES>")
DimobjCmdAsOleDbCommand
DimobjReadAsOleDbDataReader
DimstrSQL,strDSNAsString
Dimstrid,strname,strid1,strname1AsString
DimstrandAsString
strand="&"
Dimi,j,k,mAsInteger
i=0
j=0
k=0
m=0
objCmd=NewOleDbCommand(strSQL,objConn)
objCmd.Connection.Open()
objRead=objCmd.ExecuteReader()
Ifj=0Then
j=Len(Trim(objRead.Item("classid")))
Else
strid=strid1
strname=strname1
i=Len(Trim(objRead.Item("classid")))
CaseIs>0
txtwriter.WriteLine("<treenodetext='"&strname&"'NavigateUrl='xxcb_add.aspx?classname="&strname&""&strand&"classid="&strid&"'Target='main1'>")
CaseIs=0
txtwriter.WriteLine("<treenodetext='"&strname&"'NavigateUrl='xxcb_add.aspx?classname="&strname&""&strand&"classid="&strid&"'Target='main1'/>")
CaseIs<0
txtwriter.WriteLine("<treenodetext='"&strname&"'NavigateUrl='xxcb_add.aspx?classname="&strname&""&strand&"classid="&strid&"'Target='main1'/>")
'txtwriter.WriteLine("</treenode>")
Whilem<0
txtwriter.WriteLine("</treenode>")
m=m+2
EndWhile
strname1=Trim(objRead.Item("classname"))
'strname=strname1
i=Len(strid)
k=j-i
strid=strid1
strname=strname1
SelectCasek
CaseIs>0
txtwriter.WriteLine("<treenodetext='"&strname&"'NavigateUrl='xxcb_add.aspx?classname="&strname&""&strand&"classid="&strid&"'Target='main1'/>")
'txtwriter.WriteLine("</treenode>")
txtwriter.WriteLine("</treenode>")
m=m-1
EndWhile
CaseIs=0
txtwriter.WriteLine("<treenodetext='"&strname&"'NavigateUrl='xxcb_add.aspx?classname="&strname&""&strand&"classid="&strid&"'Target='main1'/>")
'txtwriter.WriteLine("</treenode>")
m=Len(strid)/2
txtwriter.WriteLine("</treenode>")
m=m-1
EndWhile
CaseIs<=0
txtwriter.WriteLine("<treenodetext='"&strname&"'NavigateUrl='xxcb_add.aspx?classname="&strname&""&strand&"classid="&strid&"'Target='main1'/>")
'txtwriter.WriteLine("</treenode>")
txtwriter.WriteLine("</treenode>")
m=m-1
EndWhile
txtwriter.WriteLine("</TREENODES>")
txtwriter.Close()
以上所分享的是关于ASP.NET中不定级动态菜单的实现,下面是编辑为你推荐的有价值的用户互动:
相关问题:asp.net mvc3 动态菜单怎么实现
答:asp.net mvc3 动态菜单实现方法如下: 1、查看代码 @{ ViewBag.Title = "Elixir ERP V1.0 Beta"; Layout = "~/Views/Shared/_LayoutUser.cshtml"; } @section leftnav{ } 2、菜单模型 using System; using System.Collections.Generic; using Sy... >>详细
相关问题:asp.net 动态生成菜单?
答:什么意思,什么样的菜单,, 在后台直接写不就好了 Label lbl1 = new Label lbl1.Text="" 类似这样的 >>详细
相关问题:asp.net 动态生成左侧菜单栏的最好方法??
答:你可以用div的 方法有两种 后台代码里根据用户来手写输出 div里放个 literal就可以了 方法2 div runat="server" 事先将div们设计好 根据要求来 visible ok?? >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
