成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

在 ASP.NET 頁面中使用 TreeView 控件

2010-08-28 10:46:59來源:西部e網作者:

一、 下載源碼

http://www.asp.net/IEWebControls/IEWebControls.exe


二、 安裝及編譯

1、執行安裝文件后,在安裝目錄找到 “build.bat”文件,用記事本將其打開。把“csc.exe”換成絕對路徑“C:\WINNT\Microsoft.NET\Framework\v1.1.4322\csc.exe”。保存后執行(記得把“只讀”屬性去掉)。


\

2、編譯完成后,在安裝目錄下可以看到“build”活頁夾﹐把該目錄下的“Runtime”子目錄里所有文件復制到“C:\Inetpub\wwwroot\webctrl_client\1_0”(若沒有,則自行創建。注意,在 IIS 中新建站點的話,必須把“webctrl_client”目錄復制到站點根目錄下)


\



三、 在 VS.NET 中使用


1、 打開 VS.NET → 右擊“工具箱”→ 添加/刪除項目 → 瀏覽 → 選中上述編譯的文件“Microsoft.Web.UI.WebControls.dll”→ 確認后即可看到添加的“TreeView”控件


\

2、 將“TreeView”控件拖入頁面 → 屬性 → 節點(Node)→ 添加根節點(或添加子節點)


\

四、 從數據庫讀取節點信息


保存節點信息的 Table 基本結構為

\

1、全部讀取并一次性展現



private void Page_Load(object sender, System.EventArgs e)

{

if(IsPostBack)

{

return;

}

DBSystem.ExecuteSQL tmp = new DBSystem.ExecuteSQL("T");

DataTable dt = tmp.GetDataTable("select * from TreeView");//從數據庫抓出數據

this.AddNodes(dt,null,"0"); //添加節點

this.TreeView1.SelectedNodeIndex=""; //不選中任何節點。

/*下一節將介紹如何修改TreeView.cs 源碼來取消默認選中節點的方法*/

}



///



/// 添加節點及其包含的子節點

///

/// 從數據庫抓出的 DataTable

/// 將要添加子節點的父節點

/// 父節點的 ID,“0” 為根節點

private void AddNodes(DataTable dt,TreeNode node,string id)

{

DataRow[] rows = dt.Select("ParentID="+id); //篩選出屬于父節點 “node”的子節點集合

foreach(DataRow dr in rows) //循環子節點集合

{

TreeNode nd = new TreeNode();

nd.NavigateUrl=dr["URL"].ToString(); //設置瀏覽的網址

nd.NodeData=dr["NodeID"].ToString(); //存放節點 ID

nd.Text=dr["NodeName"].ToString(); //設置節點名稱

this.AddNodes(dt,nd,nd.NodeData); //遞歸,添加該節點的子節點

if(node==null || id=="0")

{

this.TreeView1.Nodes.Add(nd); //添加至根節點

}

else

{

node.Nodes.Add(nd); //添加子節點

}

}



2、 展開節點時讀取該節點的數據

TreeView 控件屬性→ 自動提交(AutoPostBack) → True


\


TreeView 控件屬性→ 事件 → 雙擊展開(Expand)


\


private void Page_Load(object sender, System.EventArgs e)

{

if(!IsPostBack)

{

this.AddSingleNode(null,"0"); //找出根節點

}

this.TreeView1.SelectedNodeIndex=""; //不選中任何節點

}



///

/// 展開節點時,觸發的事件

///

/// TreeView 控件

///

private void TreeView1_Expand(object sender, Microsoft.Web.UI.WebControls.TreeViewClickEventArgs e)

{

TreeNode nd = this.TreeView1.GetNodeFromIndex(e.Node); //找到觸發事件的節點,即正在展開的節點

if(nd.Nodes[0].NodeData=="") //第一次加載,即只有“正在加載……”這一項

{

this.AddSingleNode(nd,nd.NodeData); //加載子節點

}

}



///

/// 只查找、添加單個節點下的子節點

///

/// 需要添加子節點的 TreeNode

/// 該節點的 NodeID

private void AddSingleNode(TreeNode node,string id)

{

if(node!=null && id!="0")

{

node.Nodes.Clear();//清空節點,主要是把“正在加載……”這一項移除

}

DBSystem.ExecuteSQL tmp = new DBSystem.ExecuteSQL("T");

DataTable dt = tmp.GetDataTable("select * from TreeView where ParentID="+id);//從數據庫抓出數據

foreach(DataRow dr in dt.Rows) //歷遍所有子節點

{

TreeNode nd = new TreeNode();

nd.NavigateUrl=dr["URL"].ToString(); //設置瀏覽的網址

nd.NodeData=dr["NodeID"].ToString(); //存放節點 ID

nd.Text=dr["NodeName"].ToString(); //設置節點名稱



TreeNode child = new TreeNode(); //此節點只作為“nd”展開的依據,并無它意

child.Text="正在加載……";

nd.Nodes.Add(child);

if(node==null|| id=="0")

{

this.TreeView1.Nodes.Add(nd); //添加至根節點

}

else

{

node.Nodes.Add(nd); //添加子節點

}

}

}

五、 修改“TreeView.cs”源碼,取消 TreeView 默認選中節點

1、TreeView.cs 文件

在文中﹐找到 “ protected override void OnLoad(EventArgs e)”事件

“ protected override void OnPreRender(EventArgs e)” 事件,修改以下代碼



if ((SelectedNodeIndex == "" || SelectedNodeIndex == String.Empty) && Nodes.Count > 0)

//SelectedNodeIndex = "0"; //修改前

SelectedNodeIndex = ""; //修改后



2、TreeView.htc 文件

在“C:\Inetpub\wwwroot\webctrl_client\1_0\ TreeView.htc”中找到“function ondocumentready()”把以下代碼注釋掉

// verify selectedNodeIndex

/****************** Change By Jerry On 2005-01-25 ******************/

/*

if (getNodeFromIndex(selectedNodeIndex) == null) { if (getNodeFromIndex("0") != null) selectedNodeIndex = "0"; else selectedNodeIndex = ""; }

*/

/****************** Change By Jerry On 2005-01-25 ******************/

在“function tryToBuildTreeFromRoot()”修改以下代碼

if (selectedNodeIndex.length == 0)

{

//prop_selectedNodeIndex = "0"; //修改前

prop_selectedNodeIndex = ""; //修改后

}

3、使用

修改“TreeView.cs”后,重新編譯一次,生成新的“Microsoft.Web.UI.WebControls.dll”。應用時只需要設置“SelectedNodeIndex”為 “” 即可

this.TreeView1.SelectedNodeIndex=""; //不選中任何節點。



六、 使用 XML 文檔創建 TreeView

1、XML 文檔的要求

a) 描述節點名稱是固定的“”與“

b) 雖然 XML 文文件對字母的大小寫嚴格區分,但綁定時會忽略

c) “”節點中的屬性,必須與 TreeView 控件中的 TreeNode 屬性對應

d) “”節點中的文本不能寫在節點內,只能以 “Text”屬性出現,如“Node01”行不通,應為“




2、綁定的代碼

this.TreeView1.TreeNodeSrc="TreeXML.xml";

this.TreeView1.DataBind();

關鍵詞:ASP.NET

贊助商鏈接:

主站蜘蛛池模板: 闽侯县| 木里| 泰兴市| 永安市| 衡南县| 建宁县| 车致| 兴安县| 沙田区| 宜兰市| 克什克腾旗| 渭南市| 唐山市| 珲春市| 山东省| 乐陵市| 曲阜市| 巴林右旗| 沅江市| 宁明县| 大庆市| 昌平区| 微山县| 沧源| 象山县| 绥滨县| 东山县| 蓝山县| 车致| 大余县| 靖西县| 武冈市| 青神县| 渝中区| 中超| 中牟县| 卫辉市| 高台县| 汝州市| 肇东市| 六枝特区|