首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 ┆ 端午节祝福 ┆ 迅雷在线影视 ┆淘宝手机在线充值 ┆淘宝游戏点卡充值 
设为首页
加入收藏
联系我们
高级搜索
您当前的位置: 主页>NET专区>ASP.NET>ASP.NET中不定级动态菜单的实现祥解
ASP.NET中不定级动态菜单的实现祥解
来源: 发布时间:2007-09-26 发布人: 浏览: 人次   字体: [ ]  
我们平时IEWebContr来做菜单时都是在html中直接输入,也就是说是静态的,现在要做成动态的,而且菜单级数不定,怎么来实现呢?笔者通过研究发现,用IEWebContr来做菜单时,菜单项可以直接输入,也可以用如下的方法指定从某一个文件中读取菜单项:  

<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>  

  现在的问题变成了如何将数据表根据“类别号”修改menuone.txt文件。将该过程放在对数据表修改后进行。下面是根据表的内容生成menuone.txt的源代码:  

Imports System.IO
Dim txtwriter As StreamWriter
txtwriter = File.CreateText(Server.MapPathstrpath ("\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()  

  这样menuone.txt就按要求生成了菜单源文件。 

相 关 文 章   发布商链接
·在ASP.NET中调用存储过程两方法
·Asp.net实现无刷新检测用户名
·Asp.net日期字符串格式化显示方法
·关于.NET脏字过滤的算法代码
·简单介绍Asp.net几个控件的区别
·net在sql server中的图片存取技术祥...
·.Net中使用GDI+提高gif图片画质的代...
·示例小解LinkButton组件中的Comman...
·asp.net中url传递中文的解决方案
·.net中C#代码与javaScript函数的相互...
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·实例讲解ASP.NET实现加密Cook...
·如何实现在DataList控件中的D...
·实例讲解asp.net生成高质量缩
·asp.net适用于IE或FireFox的...
·举例详解C#代码与javaScript...
·asp.net无刷新上传文件
·在Ie中保存图片时出现"800700...
·asp.net文件上传大小限制的控
·asp.net动态生成txt文本文件...
·asp.net实现将Excel文件导入...
·实现多列,带图片的DropDownLi...
·javascript实现TreeView 控件
·ASP.NET配置Word的操作权限
·让FileUpload控件在IE和FireF...
·ASP.NET实现Office文档的分类
热 门 文 章
·asp.net(C#)上传下载及文件管...
·图解asp.net如何用excel做报...
·asp.net无刷新上传文件
·Asp.Net防止刷新重复提交数据...
·asp.net实现将Excel文件导入...
·ASP.NET取得物理路径和虚拟路...
·asp.net中Web.Config配置文件...
·asp.net(c#)生成验证码代码,...
·asp.net页面回传与js调用服务...
·asp.net中DataBinder.Eval的...
·asp.net(C#版)实现登录验证码...
·DataGrid中DropDownList触发S...
·asp.net可输入的下拉框复合控...
·ASP.net 实现批量数据更新或...
·asp.net中常见的几种日历控件...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .