ASP.NET TreeView相關問題

來源:互聯網
上載者:User

1、用代碼在treeview web控制項中,添加node的方法

表欄位:編號,父編號,名稱
資料:
1 0 中華人民共和國
2 1 湖南
3 1 湖北

void creattree(string text,TreeNode tnd,string pid)
{

TreeNode t2=new TreeNode();
t2.Text=text;

tnd.Nodes.Add(t2);

產生
string str1 ="父編號 = '"+pid+"'";
DataRow[] dryl = dataSet31.Tables [0].Select(str1);

for(int i=0;i<=dryl.GetUpperBound(0);i++)
{

creattree(dryl[2].ToString(),t2,dryl[0].ToString());
}
}

//
TreeNode t1=new TreeNode();
t1.Text="地區資訊";
TreeView2.Nodes.Add(t1);

creattree("中華人民共和國",t1,"1");

2、如何為TreeView添加事件?

Private Sub TreeView1_indexChanged(ByVal sender As Object, ByVal e As
Microsoft.Web.UI.WebControls.TreeViewSelectEventArgs) Handles
TreeView1.SelectedIndexChange
Dim a As Integer
a = TreeView1.SelectedNodeIndex
TextBox1.Text = CStr(a)
End Sub
但是AutoPostBack設定為True的話,TreeView還要重新整理,閃爍,我的TreeView比較龐大
,這可怎麼辦???苦惱中。。。

3、為什麼TreeView 中的SelectedIndexChange為什麼不執行???

AutoPostBack屬性為真,SelectedIndexChange才能被執行。
不過這樣的話你選擇時會感到重新整理得讓你痛苦,根據你的具體實現的目的,採用變通的
方法,盡量不使用SelectedIndexChange事件吧。

selectedindexchange事件掛到控制項上沒有?
InitializeComponent方法中檢查檢查

4、如何判斷 TreeView 的一個節點下是否有子節點???

if(selNode.Nodes.Count==0){
//該節點沒有位元組點
}

5、如何得到 TreeView 的當前選擇節點???

1.Tree.GetNodeFromIndex(Tree.SelectedNodeIndex.ToString())
2.private void TreeView1_SelectedIndexChange(object sender,
Microsoft.Web.UI.WebControls.TreeViewSelectEventArgs e)
e.NewNode即為所選節點

6、treeview實現兩層節點沒問題,擴充到無限層就出問題了?

我的那個做法還不夠完善,對於節點數較少的情況可以這樣做,對於節點數較多的情況
,你就不能這樣做了,你應該只載入一級,當點擊節點展開時,再載入它的下一級子節
點。
資料庫結構如下:
表名:Table1
ParentID varchar 20:父節點
ID varchar 20:節點
Name varchar 50:名稱

來來來,這裡給你個常式,再給個我的網頁上的TreeViwe看看,一萬個子節點都沒問題

http://dev1.eraserver.net/czc888/webform1.aspx
至於那三個圖象的意義你看我的網頁就知道了。分別表示一頁紙(沒有子節點)、一本
關閉的書(有子節點),一本開啟的書(當前節點被展開)

void creat_node(string
name,Microsoft.Web.UI.WebControls.TreeNode t1,string number)
{
//定義一個新的結點

Microsoft.Web.UI.WebControls.TreeNode t2=new
Microsoft.Web.UI.WebControls.TreeNode();
t2.ID=number;
t2.Text=name;

//判斷是否為根結點
TreeView1.ExpandedImageUrl="images/Depart03.bmp";
if(t1.ID.Trim()=="###")
{
TreeView1.Nodes.Add(t2);
t2.ImageUrl="images/Depart01.bmp";
}
else
{
t1.Nodes.Add(t2);
t2.ImageUrl="images/Depart01.bmp";
t1.ImageUrl="images/Depart02.bmp";
}

//取得這個結點的所有子結點,利用遞迴自動產生
string mySelectQuery = "SELECT ParentID, ID,Name FROM table1
where ParentID='" + number +"'";
string MyConnString="provider=Microsoft.Jet.OLEDB.4.0;Data
Source="+Server.MapPath(".")+"/dt/mydata.mdb";
OleDbConnection myConnection = new
OleDbConnection(MyConnString);
OleDbCommand myCommand = new
OleDbCommand(mySelectQuery,myConnection);
myConnection.Open();
OleDbDataReader myReader;
myReader = myCommand.ExecuteReader();
while (myReader.Read())
{
creat_node(myReader.GetString(2),t2,myReader.GetString(1));

}
myReader.Close();
myConnection.Close();

}

private void CreateProviderTreeBtn_Click(object sender,
System.EventArgs e)
{
Microsoft.Web.UI.WebControls.TreeNode t1=new
Microsoft.Web.UI.WebControls.TreeNode();
creat_node("",t1,"###");

說句實話,從來一次掙過兩百分,緊張中……

7、怎樣使用TreeView???

//初始化TreeView資料
private void InitTV(int intVOrderLen)
{
SqlDataReader dr;
SqlCommand myCommand;
string strSel = "select * from bas_enterprise where
len(vieworder)="+intVOrderLen+" order by vieworder";
myCommand = new SqlCommand (strSel, myConnection);
dr=myCommand.ExecuteReader();
while (dr.Read ())
{
TreeNode pNode=new TreeNode ();
pNode.Text =dr["EntpName"].ToString ();
pNode.ID =dr["ViewOrder"].ToString ();
TreeView1.Nodes .Add (pNode);

}
dr.Close ();

}

private void TreeView1_SelectedIndexChange(object sender,
Microsoft.Web.UI.WebControls.TreeViewSelectEventArgs e)
{
TreeNode NewNode=TreeView1.GetNodeFromIndex
(TreeView1.SelectedNodeIndex);
string strNodeId=NewNode.ID .ToString ();
SqlDataReader dr;
SqlCommand myCommand;
int intVOrderLen=strNodeId.Length+2;
string strSel = "select * from bas_enterprise where
len(vieworder)="+intVOrderLen+" and vieworder like '%"+strNodeId+"__%'
order by vieworder";
myCommand = new SqlCommand (strSel, myConnection);
dr=myCommand.ExecuteReader();
NewNode.Nodes .Clear();
while (dr.Read ())
{
TreeNode pNode=new TreeNode ();
pNode.Text =dr["EntpName"].ToString ();
pNode.ID =dr["ViewOrder"].ToString ();
NewNode.Nodes.Add (pNode);
}
dr.Close ();
TreeView1.ExpandLevel=1;
}

8、TreeView控制項事件如何響應?

問題:
我在selectedchange事件中編寫代碼,每次點擊結點時候,介面(1)重新整理,出現閃爍現
象(2)閃爍完成以後,還是在第一結點,沒有回到相應結點,提示值也固定在第一個結
點的值,怎麼解決阿。

答案:
在selectedchange事件中可以找到參數e,裡麵包含了舊的節點和新的節點
不過是用字串表示的,比如是第一個節點下的第一個子節點,就用0.0表示的,轉換為
適合的形式,就可以操作了,令應該是把自動響應事件改為“true”的,否則無法響應的,
雖然比較閃爍,並且每次都是回到第一節點的

9、點擊treeview的一個子節點,開啟一個串連控制目標視窗,有沒有辦法?

treeview的NODE有NavigateURL 以及target屬性

10、Microsoft.Web.UI.WebControls中TreeView瀏覽時不顯示樹形的問題

問題:
我下載安裝了英文版的Microsoft.Web.UI.WebControls,在TreeView的Nodes屬性中添加
了一些節點,但是在IE中瀏覽時不顯示樹形,只是一些文字。我看了論壇上所有有關這
方面的貼子,有人是在伺服器上不顯示樹形,只是一些文字,我的是在本機上都不顯示
樹形,只是一些文字。請各位大俠賜教!

答案:
下載包分自動安裝和手動安裝兩種包
你因該下在自動安裝的包!

11、在treeview中如何尋找一個值,並選中它?

問題:
各位,在已經建好的樹中如何尋找一個文本或者是treenodes的id,找到後選中它?

答案:
for(int i=0;i<TreeView1.Nodes.Count;i++)
if(TreeView1.Nodes==TextBox1.Text)
{
string index1=TreeView1.Nodes.GetNodeIndex();//取得index
TreeView1.SelectedNodeIndex=index1;
   }

12、如何取得TreeView中各項的值??

private void TreeView1_SelectedIndexChange(object sender,
Microsoft.Web.UI.WebControls.TreeViewSelectEventArgs e)
{
Microsoft.Web.UI.WebControls.TreeNode
NewNode=TreeView1.GetNodeFromIndex(TreeView1.SelectedNodeIndex);
Label1.Text =NewNo
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.