• [原创]VS2003中ASP.NET实现自定义用户导航控件


    转载请注明出处。
    继续我的ASP.NET的系列。
    看到很多网站都有导航的功能,可以轻松实现用户的导航,方便用户查看和查找不同的网页。于是我就准备为我的网站设计一个导航控件,然后每个网页都放入这个自定义的控件,这样就实现了导航了。

    首先,创建一个自定义控件,在vs2003中的项目中添加自定义控件步骤:右键点击需添加的项目名称->
    添加->添加WEB用户控件,然后取个名字就ok了。自定义用户控件的后缀名是ascx。

    接下来就是编辑这个控件了,其实它和普通的aspx页面没有多大的区别,你可以像编辑aspx一样编辑ascx,它也支持控件的拖放。这里要实现导航的功能,我参考了Starter Kit里面的例子,我用datalist控件
    实现不同菜单的选项。当然也有其它的方法,例如超链接按钮,table等。不过方法都是类似的,所以我只用datalist来做了。

    首先,在ascx中添加一个panel,把你要用的控件放入这个panel中。panel可以设置一个你喜欢的背景图片。然后添加datalist,右键选择编辑项模板,在ItemTemplate中放入超链接控件,绑定超链接的文本或者图片和要连接的URL,绑定的数据源稍后设置。绑定后,超链接就可以显示你的数据源中的内容并跳转到相应的页面了,至于你要显示哪些导航菜单,以及点击后如何跳转,这些就取决于你的数据源了。

    关键就是数据源的设计和绑定了。于是我设计了tabitem类,里面有name,path和image三个属性,分别存储了超链接的文本,跳转url和图片数据。
    public class TabItem
     {
     private string _name;
     private string _path;
     private string _image;

    public TabItem(string newName,string newPath)
    {
    _name = newName;
    _path = newPath;
     _image = "";
    }

    public TabItem(string newName,string newPath,string newImage)
     {
     _name = newName;
     _path = newPath;
     _image = newImage;
    }
     public string Name
     {
     get
    {
     return _name;
    }
    set
    {
     _name = value;
     }
    }
     public string Path
    {
    get
    {
     return _path;
    }
    set
     {
     _path = value;
    }
    }
     public string Image
     {
    get
     {
    return _image;
    }
    set
    {
     _image = value;
    }
    }
    }
    然后,在ascx文件中先引用这个类,在声明一个数据源接口:ArrayList tabItems = new ArrayList();

    以下添加超链接的显示文字和链接地址,并绑定到datalist控件
    tabItems.Add(new TabItem("主页","defaultbody.aspx","image/01.jpg"));
    tabItems.Add(new TabItem("查询","Search/Welcome.aspx","image/02.jpg"));
     tabItems.Add(new TabItem("分部管理","DepManage/Welcome.aspx","image/03.jpg"));
    tabItems.Add(new TabItem("总部管理","HQManage/Welcome.aspx","image/04.jpg"));

    GuideHeaderDataList.DataSource = tabItems;
    GuideHeaderDataList.DataBind();

    接下来的超链接绑定表达式就是:
    DataBinder.Eval(Container.DataItem, "Image");
    DataBinder.Eval(Container.DataItem, "Name");
    DataBinder.Eval(Container.DataItem, "Path");


    至此就大功告成了。在需要的网页中直接把控件拖到页面中就可以用了。
    效果图:(我还加了其它功能,不过主要的是导航,所以其它的就不介绍了)
    查看更多精彩图片



  • 相关阅读:
    NYOJ 746---整数划分(四)(区间DP)
    2014 ICPC---Relief grain(树链剖分)
    51Node 1483----化学变换(暴力枚举)
    2016暑假多校联合---Rikka with Sequence (线段树)
    《程序员代码面试指南》第五章 字符串问题 字典树(前缀树)的实现
    《程序员代码面试指南》第五章 字符串问题 找到被指的新类型字符
    《程序员代码面试指南》第五章 字符串问题 公式字符串求值
    《程序员代码面试指南》第五章 字符串问题 数组中两个字符串的最小距离
    《程序员代码面试指南》第五章 字符串问题 翻转字符串
    《程序员代码面试指南》第五章 字符串问题 字符串的调整与替换
  • 原文地址:https://www.cnblogs.com/absolute8511/p/1649697.html
Copyright © 2020-2023  润新知