使用xml作为数据源,让asp:Menu类自由扩展菜单项

  先新建一个名为menu的xml文件,内容如下:

<?xml version="1.0" encoding="utf-8" ?>
<menu>
  <menuItem url="~/Default.aspx" title="首页"  description=""/>
  <menuItem url="~/News.aspx" title="新闻"  description="">
    <menuItem url="~/News.aspx" title="国内新闻"  description=""/>
    <menuItem url="~/News.aspx" title="国际新闻"  description=""/>
  </menuItem>
</menu>      

  然后在页面上拖放一个menu控件,并拖放一个XmlDataSource控件,id为XmlDataSource1,将menu的 DataSourceID设置为XmlDataSource1。

  配置XmlDataSource控件,使DataFile="~/Menu.xml" XPath="menu/menuItem",这里采用xpath来选取数据,即将menuItem的数据筛选出来。

  此时,再绑定menu控件的数据,告诉menu控件该怎么显示从xml文件筛选出来的数据。选中menu控件,在属性窗口选取DataBindings,在弹出的对话框里,在左上角的列表中选中menuItem,单击添加按钮将menuItem添加到左下的列表中,再在此列表中选择menuItem,此是右边的列表将显示要绑定的属性,使NavigateUrlField="url" TextField="title"。按确定按钮返回设计界面,此时就会显示出"首页"和"新闻"两个菜单项。
  
  设计html代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="CoAffiliate._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Menu ID="Menu1" runat="server" DataSourceID="XmlDataSource1" Orientation="Horizontal" StaticEnableDefaultPopOutImage="False">
            <DataBindings>
                <asp:MenuItemBinding DataMember="menuItem" NavigateUrlField="url" TextField="title" />
            </DataBindings>
        </asp:Menu>
        <asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/Menu.xml" XPath="menu/menuItem"></asp:XmlDataSource>
   
    </div>
    </form>
</body>
</html>
http://www.cnblogs.com/ofei/archive/2007/01/20/625745.html

时间: 2024-10-27 15:23:01

使用xml作为数据源,让asp:Menu类自由扩展菜单项的相关文章

手机开发-Android 模拟器中按菜单Menu键弹出菜单项MenuItem,点击菜单项中的菜单项没反应!!!

问题描述 Android 模拟器中按菜单Menu键弹出菜单项MenuItem,点击菜单项中的菜单项没反应!!! public boolean onCreateOptionsMenu(Menu menu){ getMenuInflater().inflate(R.menu.main,menu); return true; } public boolean onOptionsItemSeleted(MenuItem item){ switch(item.getItemId()) { case R.i

asp.net类序列化生成xml文件实例详解_实用技巧

本文实例讲述了asp.net类序列化生成xml文件的方法.分享给大家供大家参考,具体如下: 根据设计的需求需要开发多个商品的API 原XML文件如下: <urlset> <url> <loc>http://www.xxxxx.com/todaydetials.aspx?id=143</loc> <data> <display> <website>爱购114</website> <siteurl>ht

ADO数据与XML数据间的转换的类

当对现有数据库的数据进行分析时,经常需要对某一部分的数据进行分析.此时,使用1.SQL查询分析器? 但其往往不直观,查找某个关键字又需要重新执行新的SQL.2.SQLXML模板? 但又不一定有权限建立新的虚拟目录,且某些SQL语句SQLXML模板不支持 数据拆离时也有相似问题.尤其当不同网络,不同环境,需要重新导入数据,进行分析或拆离,困难尤为明显.能不能有一种方法,可以将数据脱离于数据库进行分析,需要时再导入到数据库中?XML是个很好的选择!ADO本身支持数据到XML的转换,只需要对其格式进行

asp打包类

打包 <%On Error Resume NextDim rSet r = New Rar r.Add Server.MapPath("a.gIf")r.Add Server.MapPath("a.txt")r.Add Server.MapPath("test")r.Add Server.MapPath("file.asp")r.packname = Server.MapPath("xxx.dat")

删除lpt1.css.asp或com8.index.asp这类文件的方法

一般遇到lpt1.css.asp或com8.index.asp这类文件,都是黑客利用系统保留文件名创建的一些webshell.在Windows下不能以如下字样来命名文件或文件夹: aux|prn|con|nul|com1|com2|com3|com4|com5|com6|com7|com8|com9|lpt1|lpt2|lpt3|lpt4|lpt5|lpt6|lpt7|lpt8|lpt9 但是可以通过cmd的copy命令实现: D:wwwroot>copy rootkit.asp .D:wwwr

ireport用xml作为数据源传参到子报表时,找不到匹配参数

问题描述 ireport用xml作为数据源传参到子报表时,找不到匹配参数 在使用ireport(5.6)是制作子报表与父报表连接时.一直找不到解决xml为数据也参数传递的问题,多为sql语言.在使用XPath的情况下换搜不到该参数(|| 不知道怎么搜),而换另外的(如:sql)又会报错,不能read fields.请大家帮忙解答 解决方案 http://blog.csdn.net/liunian02050328/article/details/38893059 解决方案二: 不好意思,初学者,追

ASP日志类和判断是否包涵JS脚本类

ASP日志类  代码如下 复制代码 Function WriteLogReg(Error_lerong)     On Error Resume Next     LogFileTmp = "Error.log"     Set tmpFsoR = Server.CreateObject("scripting.filesystemobject")     Set tmpLogR = tmpFsoR.OpentextFile(Server.MapPath(LogFil

哪里可以找到 asp.net 类的外文翻译?

问题描述 哪里可以找到asp.net类的外文翻译呢?找了半天没有合适的,想中文翻译过来5000字的,,新年快乐~! 解决方案 解决方案二:先顶啊不明白你什么意思?解决方案三:疯狂≮程序员≯网址:http://heshengxin.ys168.com/CC++JAVAC#.NET软件开发大家随便上传,没问题的代码大家一起分享,有问题的代码大家一起解决.疯狂≮程序员≯一Q群号码:3733191疯狂≮程序员≯二Q群号码:9951116

菜鸟一枚,希望大神帮忙!我的问题是关于gridview绑定数据源的asp.net

问题描述 菜鸟一枚,希望大神帮忙!我的问题是关于gridview绑定数据源的asp.net 希望在UserStateID后面加上第二张标的Name字段 解决方案 这个是给数据库添加一列然后从数据库中读取的:ALTER TABLE 表名ADD 列名 类型; 下面的不是从数据库添加然后读取的http://zhidao.baidu.com/question/201260940 如果回答对你有帮助请采纳 解决方案二: 直接在sql中连接查询即可select a.* from 表1 a join 表2 b