要求:导航条上的栏目是由数据库中获得,但不显示全部的栏目,按照其排列的序号显示N个在导航条上(此操作是在后台页面设置的),有的栏目有子栏目,点击时呈现下拉菜单的效果显示子栏目,没子栏目的点击后直接跳转到指定页面。 望广大高手们指点小弟~!
解决方案 »
- jquery 去tr 的id 值
- ASPX控件传值并且在CS页获取传值,在线等
- 利用SQL事务想两个表插入数据时出错,麻烦大家帮我看看
- 有没办法实现网页file控件后台提交?
- 如何判断页面链接是否正确呢?
- treeview控件放在服务器上,服务器不认识这个控件,怎么样才能让这个控件正常显示出来
- 网页中调用打印按纽出现无法解决的问题.
- 网站首页是一张图片,怎么在用户登陆时判断浏览器分辩率,不论是1024*768,还是800*600,整个图片左右上下都是居中的?
- 关于FORM身份验证的问题。
- 微软有.net认证么?
- SQL:关于树和节点的!求救~~在线等。。。。
- 大家来看看啊~~~奇怪的ASP.NET页面继承问题
下载地址:http://www.aspnetmenu.com/download/ASPnetMenu_setup.msi
2、安装后,一般放在C:\Program Files\ASPnetMenu下,要想看到例子,还要进来后再次安装:ASPnetMenu_examples.msi,默认虚拟目录:ASPnetMenu,默认端口是:80
3、在开始菜单中找到ASP.NET MENU的项目,选中Examples - Start Page.htm第一个例子:Basic Horizontal
运行地址:http://localhost/ASPnetMenu/design/basicHorizontal/WebForm1.aspx
物理目录地址:wwwroot/ASPnetMenu/Design/basicHorizontal/ (1)将C:\Program Files\ASPnetMenu\ASPnetMenu.dll添加到工具箱
(2)拖放此控件到空白页面,将例子演示里的IMAGES目录和XML文件拷当前目录下。并在解决方案中添加menudata.xml进来。设定AspNetMenu 控件的MenuData属性为menudata.xml
(3)现在就可以直接运行项目看到效果了。但这时看不到中文的菜单,因为如果我们把XML里的相关项目改为中文,会出现:给定编码中有无效的字符 这样的错误。解决办法是:
用记事本打它menudata.xml文件,直接选另存为:文件名不变,把编码改为:UTF-8,提示是不是覆盖时选是。再次运行项目。以后要想每改一下XML文件内容,直接用VS是不行的,要用记事本打开,然后再次另存为UTF-8才行!(FIT!!!)
附另一解决办法:设置<?xml version="1.0" encoding="gb2312" ?>(4)xml文件里Label属性可以有:
RightIcon 向右的级联菜单图标 ,比如:RightIcon="arrow_white.gif"
RightIconWidth 向右级联菜单图标的宽度 比如:RightIconWidth="15"
ID="i_List"
(5)要想知道用户是按下哪个选项,可以通过ID的设置,比如:
XML文件里有:<MenuItem Label="文件" ID="i_File"/>
那么在:控件的事件,也就是属性窗口中那个黄色的小闪电那个中,找到:MenuItemSelected,设置相关事件:
private void ASPnetMenu1_MenuItemSelected(object sender, CYBERAKT.WebControls.Navigation.MenuItemSelectedEventArgs e)
{
Response.Write(e.ItemID.ToString());
}
然后在括号中处理相关事件。
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;namespace GeneralForums.Web.UI.Util
{
/// <summary>
/// 定义Default.aspx页面中登录导航项目。
/// </summary>
[DefaultProperty("Text"),
ToolboxData("<{0}:NavigatorItem runat=server></{0}:NavigatorItem>")]
public class NavigatorItem : System.Web.UI.WebControls.WebControl
{
private string text;
private string url;
private string img; /// <summary>
/// 初始化 NavigatorItem 类的新实例。
/// </summary>
public NavigatorItem()
{
this.text = "";
this.url = "";
this.img = "";
}
/// <summary>
/// 使用指定的标签文本初始化 NavigatorItem 类的新实例。
/// </summary>
/// <param name="text">标签文本。</param>
public NavigatorItem(string text)
{
this.text = text;
this.url = "";
this.img = "";
}
/// <summary>
/// 使用指定的标签文本和链接 url 初始化 NavigatorItem 类的新实例。
/// </summary>
/// <param name="text">标签文本。</param>
/// <param name="url">链接 url。</param>
public NavigatorItem(string text, string url)
{
this.text = text;
this.url = url;
this.img = "";
}
/// <summary>
/// 获取或者设置导航项目的标签文本。
/// </summary>
[Bindable(true),
Category("Appearance"),
DefaultValue(""),
Description("导航项目的标签文本。")]
public string Text
{
get
{
return this.text == null ? "[" + this.ID + "]" : this.text;
}
set
{
this.text = value;
}
}
/// <summary>
/// 获取或者设置导航项目的链接 url。图片的大小为 203 × 42 象素。
/// </summary>
[Bindable(true),
Category("Appearance"),
DefaultValue(""),
Description("项目背景图片的虚拟路径。")]
public string BackImageUrl
{
get
{
return this.img == null ? "" : this.img;
}
set
{
this.img = value;
}
}
/// <summary>
/// 获取或者设置导航项目的链接 url。
/// </summary>
[Bindable(true),
Category("Appearance"),
DefaultValue(""),
Description("导航项目的链接 url。")]
public string Url
{
get
{
return this.url == null ? "" : this.url;
}
set
{
this.url = value;
}
}
/// <summary>
/// 将此控件呈现给指定的输出参数。
/// </summary>
/// <param name="output"> 要写出到的 HTML 编写器 </param>
protected override void Render(HtmlTextWriter output)
{
System.Web.UI.WebControls.Table table = new Table();
table.ID = this.ID;
table.ApplyStyle(this.ControlStyle);
table.BackImageUrl = this.BackImageUrl;
table.CellPadding = 0;
table.CellSpacing = 0;
table.BorderStyle = BorderStyle.None;
table.BorderWidth = new Unit(0);
table.Height = new Unit(42);
table.Width = new Unit(203);
table.Visible = this.Visible;
table.Enabled = this.Enabled;
System.Web.UI.WebControls.TableRow row = new TableRow();
System.Web.UI.WebControls.TableCell cell = new TableCell();
cell.VerticalAlign = System.Web.UI.WebControls.VerticalAlign.Middle;
string cssclass = table.CssClass;
table.CssClass = "";
if(cssclass != "")
cssclass = " class=\"" + cssclass + "\"";
string key = "";
string title = "";
if(this.AccessKey != "")
{
key = "accesskey=\"" + this.AccessKey + "\" ";
title = "(Alt + " + this.AccessKey + ")";
}
if(this.ToolTip != "")
{
title = this.ToolTip + title;
}
if(title != "")
title = " title=\"" + title + "\"";
cell.Text = "<div align=\"center\"><a " + key + "href=\"" + this.Url + "\"" + cssclass + title + "\" style=\"text-decoration:none\">" + this.Text + "</a></div>";
row.Cells.Add(cell);
table.Rows.Add(row);
table.RenderControl(output);
}
}
}
另:这CSDN中的楼层不怎么好数吧?回帖时直接说ID指名道姓就OK了。
你说6楼,我看了好几天都没发现是在说我呢。