Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > อยากถามเรื่อง SqlSiteMapProvider ครับ ท่านกูรู พอดีอยากจะทำ Menu ที่สามารถแก้ไขข้อมูลได้ง่ายครับ



 

อยากถามเรื่อง SqlSiteMapProvider ครับ ท่านกูรู พอดีอยากจะทำ Menu ที่สามารถแก้ไขข้อมูลได้ง่ายครับ

 



Topic : 028972



โพสกระทู้ ( 25 )
บทความ ( 0 )



สถานะออฟไลน์




พอดีอยากจะทำ Menu ที่สามารถแก้ไขข้อมูลได้ง่ายครับแต่ติดปัญหาเวลาเราเพิ่ม Node เข้าไปใน Provider ท่านใดมีประสบการณ์ช่วยหน่อยนะครับมีภาพครับ
error

Code (C#)
using System;
using System.Web;
using System.Data.SqlClient;
using System.Collections.Specialized;
using System.Configuration;
using System.Collections.Generic;
using System.Runtime.CompilerServices;

/// <summary>SqlSiteMapProvider</summary>
public class SqlSiteMapProvider : StaticSiteMapProvider
{
	static readonly string _errmsg1 = "Missing connectionStringName attribute";
	static readonly string _errmsg2 = "Duplicate node ID";
	SiteMapNode _root = null;
	string _connect;

	public override void Initialize (string name, NameValueCollection attributes)
	{
		base.Initialize (name, attributes);

		if (attributes == null)
			throw new ConfigurationErrorsException (_errmsg1);

		_connect = attributes["connectionStringName"];
		if (String.IsNullOrEmpty (_connect))
			throw new ConfigurationErrorsException(_errmsg1);
	}

	[MethodImpl(MethodImplOptions.Synchronized)]
	public override SiteMapNode BuildSiteMap()
	{
		// Return immediately if this method has been called before
		if (_root != null)
			return _root;

		// Create a dictionary for temporary node storage and lookup
		Dictionary<int, SiteMapNode> nodes = new Dictionary<int, SiteMapNode> (16);

		// Query the database for site map nodes
		using(SqlConnection connection = new SqlConnection (ConfigurationManager.ConnectionStrings[_connect].ConnectionString))
		{
			connection.Open ();
			SqlCommand command = new SqlCommand ("SELECT ID, Title, Description,'~/Homepage.aspx?pgid='+ Url as Url, Roles, Parent FROM SiteMap ORDER BY ID", connection);
			SqlDataReader reader = command.ExecuteReader ();
			int id = reader.GetOrdinal("ID");
			int url = reader.GetOrdinal ("Url");
			int title = reader.GetOrdinal ("Title");
			int desc = reader.GetOrdinal("Description");
			int roles = reader.GetOrdinal ("Roles");
			int parent = reader.GetOrdinal("Parent");

			if (reader.Read())
			{
				// Create the root SiteMapNode
				_root = new SiteMapNode(this, reader.GetInt32(id).ToString(), reader.IsDBNull(url) ? null : reader.GetString(url),
					reader.GetString(title), reader.IsDBNull(desc) ? null : reader.GetString(desc));

				if (!reader.IsDBNull(roles))
				{
					string rolenames = reader.GetString(roles).Trim ();
					if (!String.IsNullOrEmpty(rolenames))
					{
						string[] rolelist = rolenames.Split(new char[] { ',', ';' }, 512);
						_root.Roles = rolelist;
					}
				}

				//  Add "*" to the roles list if no roles are specified
				if (_root.Roles == null)
					_root.Roles = new string[] { "*" };

				// Record the root node in the dictionary
				if (nodes.ContainsKey (reader.GetInt32(id)))
					throw new ConfigurationErrorsException(_errmsg2); // ConfigurationException pre-Beta 2
				nodes.Add(reader.GetInt32(id), _root);

				// Add the node to the site map
				AddNode(_root, null);

				// Build a tree of SiteMapNodes underneath the root node
				while (reader.Read())
				{
					SiteMapNode node = new SiteMapNode(this, reader.GetInt32(id).ToString(), reader.IsDBNull(url) ? null : reader.GetString(url),
						reader.GetString(title), reader.IsDBNull(desc) ? null : reader.GetString(desc));

					if (!reader.IsDBNull(roles))
					{
						string rolenames = reader.GetString(roles).Trim ();
						if (!String.IsNullOrEmpty(rolenames))
						{
							string[] rolelist = rolenames.Split(new char[] { ',', ';' }, 512);
							node.Roles = rolelist;
						}
					}

					// If the node lacks roles information, "inherit" that
					// information from its parent
					SiteMapNode parentnode = nodes[reader.GetInt32(parent)];
					if (node.Roles == null)
						node.Roles = parentnode.Roles;

					// Record the node in the dictionary
					if (nodes.ContainsKey(reader.GetInt32(id)))
						throw new ConfigurationErrorsException(_errmsg2);
					nodes.Add(reader.GetInt32(id), node);

					// Add the node to the site map
					AddNode(node, parentnode);
				}
			}
		}

		// Return the root SiteMapNode
		return _root;
	}

	protected override SiteMapNode GetRootNodeCore ()
	{
		BuildSiteMap ();
		return _root;
	}
}





Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2009-07-07 11:45:59 By : keyte View : 3456 Reply : 1
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

Code (C#)
<%@ Page Language="C#" %>
<script runat="server">

    void Page_Load(Object sender, EventArgs e)
	{
    
    }

</script>
<html>
<head>
    <title>ThaiCreate.Com Tutorial</title>
</head>
<body>
    <form id="form1" runat="server">
	  <div>
	  <h2>Using SiteMapPath</h2>
	  <asp:SiteMapPath ID="SiteMapPath1" Runat="server">
	  </asp:SiteMapPath>

	  <asp:SiteMapDataSource ID="SiteMapDataSource1" Runat="server" />

	  <h2>Using TreeView</h2>
	  <asp:TreeView ID="TreeView1" Runat="Server" DataSourceID="SiteMapDataSource1">
	  </asp:TreeView>

	  <h2>Using Menu</h2>
	  <asp:Menu ID="Menu2" Runat="server" DataSourceID="SiteMapDataSource1">
	  </asp:Menu>

	  <h2>Using a Horizontal Menu</h2>
	  <asp:Menu ID="Menu1" Runat="server" DataSourceID="SiteMapDataSource1"
		Orientation="Horizontal" 
		StaticDisplayLevels="2" >
	  </asp:Menu>
	  </div>
    </form>
</body>
</html>


Go to : (C#) ASP.NET and SiteMapPath






Date : 2011-06-09 21:22:56 By : webmaster
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : อยากถามเรื่อง SqlSiteMapProvider ครับ ท่านกูรู พอดีอยากจะทำ Menu ที่สามารถแก้ไขข้อมูลได้ง่ายครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่