当前位置:首页 > 代码 > 正文

asp.net菜单源代码(ASPNET控件)

admin 发布:2022-12-19 21:34 112


本篇文章给大家谈谈asp.net菜单源代码,以及ASPNET控件对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

求Asp.net菜单的制作方法及代码?VS2005.net,C#

用Menu控件可以,不用必须关联站点地图。直接修改Items属性就可以。

具体实现在MenuItemClick事件中编写代码。

然后把样式定义好就能和你这个菜单一致,把方向改成横向。

asp.net可以自行输入和选择下拉菜单的源代码或控件

代码给你了 剩下的就交个你了。

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI.WebControls;

using System.Web.UI;

namespace Common_Core.CustomControl

{

[ToolboxData("{0}:DropDownTextBox runat=\"server\" /")]

public class DropDownTextBox : System.Web.UI.WebControls.TextBox

{

private DropDownList _DropDownList;

public DropDownTextBox()

{

this._DropDownList = new DropDownList();

this.DataTextField = "sName";

this.DataValueField = "PK_ID";

}

/// summary

/// text

/// /summary

public string DataTextField { get; set; }

/// summary

/// value

/// /summary

public string DataValueField { get; set; }

/// summary

/// datasource

/// /summary

public object DataSource { get; set; }

/// summary

/// bind data

/// /summary

private void BindData()

{

if (DataSource == null) return;

_DropDownList.DataSource = this.DataSource;

_DropDownList.DataTextField = this.DataTextField;

_DropDownList.DataValueField = this.DataValueField;

_DropDownList.DataBind();

}

protected override void Render(HtmlTextWriter output)

{

int iWidth = Convert.ToInt32(base.Width.Value);

if (iWidth == 0)

{

iWidth = 102;

base.Width = Unit.Parse("102px");

}

int sWidth = iWidth + 16;

int spanWidth = sWidth - 18;

output.Write("div style=\"POSITION:relative\"");

output.Write("span style=\"MARGIN-LEFT:" + spanWidth.ToString() + "px;OVERFLOW:hidden;WIDTH:18px\"");

_DropDownList.Width = Unit.Parse(sWidth.ToString() + "px");

_DropDownList.Style.Add("MARGIN-LEFT", "-" + spanWidth.ToString() + "px");

_DropDownList.ID = base.ID + "_Select";

_DropDownList.Attributes.Add("onchange", "this.parentNode.nextSibling.value=this.options[this.selectedIndex].text");

_DropDownList.Attributes.Add("onfocus", "" + this.getFocusScript() + "");

//LoadData();

BindData();

_DropDownList.RenderControl(output);

output.Write("/span");

base.Style.Clear();

base.Width = Unit.Parse(iWidth.ToString() + "px");

base.Style.Add("left", "0px");

base.Style.Add("POSITION", "absolute");

base.Render(output);

output.Write("/div");

}

private string getFocusScript()

{

string strScript = "\n";

strScript += "var isExist = -2;\n";

strScript += "var obj = event.srcElement;\n";

strScript += "var str = this.parentNode.nextSibling.value;\n";

strScript += "var ary = obj.options;\n";

strScript += "for(var i=0;iary.length;i++){\n";

strScript += " if(str == ary[i].text){\n";

strScript += " isExist = i;\n";

strScript += " break;\n";

strScript += " }\n";

strScript += "}\n";

strScript += "if(isExist != -2){\n";

strScript += " obj.selectedIndex = isExist;\n";

strScript += "}\n";

strScript += "else{\n";

strScript += " obj.selectedIndex = -1;\n";

strScript += "}\n";

return strScript;

}

}

}

asp.net:求一份能从数据库中读取数据动态生成菜单目录的源码

怎么发给你呢?

算了 还是直接发给你吧,这个是我之前学习的时候,在网上找的。希望能够对你有所帮助:

第一步 建表

create table TreeTest

(

id int identity(1,1) primary key ,

treeId int, --数形结构 1,代表根目录 2,代表根的下一级目录,3代表根的子目录的子目录。。依次类推

names varchar(200), --url传的参数值

page varchar(200) --页面

)

--添加测试数据

insert into TreeTest select 1,'张三','default.aspx'

union all select 2,'李四','default1.aspx'

union all select 2,'王五','default2.aspx'

union all select 2,'唐僧','default3.aspx'

union all select 3,'八戒','default4.aspx'

union all select 3,'八戒','default5.aspx'

第二步 在页面写如下代码

body

form id="form1" runat="server"

div

asp:Menu ID="Menu1" runat="server"

/asp:Menu

/div

/form

/body

第三步 在页面后台写如下代码(注意不要整个复制,因为类名不一样)

using System;

using System.Data;

using System.Configuration;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

using System.Data.SqlClient;

using System.Data.ProviderBase;

using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page

{

DataSet ds = new DataSet();

protected void Page_Load(object sender, EventArgs e)

{

//Menu1.Items.Add(i1);

//i1.ChildItems.Add(i2);

// 在此处放置用户代码以初始化页面

SqlConnection CN = new SqlConnection("server=数据名连接地址;User id=;pwd=;database=tempdb");

//初始化连接字符串

CN.Open();

//添加命令,从数据库中得到数据

SqlCommand sqlCmd = new SqlCommand();

sqlCmd.Connection = CN;

sqlCmd.CommandText = "select * from TreeTest";

sqlCmd.CommandType = CommandType.Text;

SqlDataAdapter adp = new SqlDataAdapter(sqlCmd);

adp.Fill(ds);

//调用递归函数,完成树形结构的生成

//tn2=AddTree(0, (TreeNode)null);

//TreeView1.Nodes.Add(tn2);

AddTree(1, (MenuItem)null);

}

public void AddTree(int ParentID, MenuItem pNode)

{

string url1;

string url2;

string url3;

string url4;

MenuItem mi = new MenuItem();

//TreeNode tn1 = new TreeNode();

DataView dvTree = new DataView(ds.Tables[0]);

//过滤ParentID,得到当前的所有子节点

dvTree.RowFilter = "treeId = " + ParentID;

foreach (DataRowView Row in dvTree)

{

if (pNode == null)

{ //'?添加根节点

url1 = Row["names"].ToString();

url2 = Row["page"].ToString() + "?name=" + url1;

mi.Text = url1;

mi.NavigateUrl = url2;

mi.Target = "_blank";

// tn1.Text = url1;

// tn1.NavigateUrl = url2;

Menu1.Items.Add(mi);

// TreeView1.Nodes.Add(tn1);

AddTree(Int32.Parse(Row["id"].ToString()) + 1, mi); //再次递归

}

else

{ //添加当前节点的子节点

// TreeNode tn2 = new TreeNode();

MenuItem m2 = new MenuItem();

url3 = Row["names"].ToString();

url4 = Row["page"].ToString() + "?name=" + url3;

m2.Text = url3;

m2.NavigateUrl = url4;

m2.Target = "_blank";

//tn2.Text = url3;

//tn2.NavigateUrl = url4;

pNode.ChildItems.Add(m2); //修改的地方

// pNode.ChildNodes.Add(tn2);

AddTree(Int32.Parse(Row["id"].ToString()) + 1, m2); //再次递归

}

}

}

}

关于asp.net菜单源代码和ASPNET控件的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/25360.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载