2013-06-25 48 views
0

下面是aspx頁面我的TreeView控件Asp.net樹視圖帶有複選框

<asp:TreeView ID="TvCategories" runat="server" ShowCheckBoxes="All" OnSelectedNodeChanged="TvCategories_SelectedNodeChanged"> 
</asp:TreeView> 

我動態如下結合它:

DataSet ds = new DataSet(); 
    DataTable dt = new DataTable(); 
    ds = BindCategories(); 
    dt = ds.Tables[0]; 

    for (int i = 0; i < dt.Rows.Count; i++) 
    { 
     TreeNode firstchild = new TreeNode(); 
     firstchild.Text = " Shoes"; 
     firstchild.SelectAction = TreeNodeSelectAction.Select; 
     TvCategories.Nodes.Add(firstchild); 
     DataSet ds1 = new DataSet(); 
     ds1 = BindSubCategories(dt.Rows[i]["InventoryType"].ToString()); 
     DataTable dt1 = ds1.Tables[0]; 

     for (int j = 0; j < dt1.Rows.Count; j++) 
     { 
      TreeNode childnode = new TreeNode(); 
      childnode.SelectAction = TreeNodeSelectAction.Select; 

      if (j == 0) 
       childnode.Text = "Nike"; 
      if (j == 1) 
       childnode.Text = "Rebok"; 
      if (j == 2) 
       childnode.Text = "Addidas"; 
       firstchild.ChildNodes.Add(childnode); 

     } 
    } 

下面是樹形的圖像當我運行瀏覽器中的Web應用程序:
enter image description here

我想要做什麼?

通過選擇根節點也將選擇所有的子節點,反之亦然
當我選擇任何孩子或任何根,回發事件將觸發,並基於選擇我想綁定gridview。

+0

一些零件和你的問題是什麼? – Alexander

+0

你想根據你所做的選擇來綁定你的網格嗎? –

+0

是的我想根據我所做的選擇來綁定你的網格。 –

回答

0

我建議你追加你的子節點值和父節點值,所以當你要基於用戶選擇綁定gridview時,對你來說會很容易。點擊以下鏈接

退房,顯示瞭如何檢查父子節點:

http://nilthakkar.blogspot.in/2009/04/check-uncheck-treeview-checkboxes-with_13.html

您可以用樹狀的Checkednodes財產價值有樹狀的檢查節點。

看看下面的鏈接,顯示如何做到這一點。

http://nilthakkar.blogspot.in/2009/05/retrieve-selected-treenode-value-at.html

+0

thanx Nileshsir,這個鏈接(http://nilthakkar.blogspot.in/2009/04/check-uncheck-treeview-checkboxes-with_13.html)對我很有幫助。第二個鏈接不會用在我的案例中。實際上我想根據複選框選擇來綁定網格。所以我想根據選擇做回發頁面,而不是用按鈕點擊回發。 –

0

使用此代碼後重新檢查改變:

<script language="javascript" type="text/javascript"> 
    e = e || window.event; 
    var o = e.srcElement || e.target; 
</script> 
    <asp:TreeView ID="TvCategories" runat="server" ShowCheckBoxes="All onclick="postBackByObject(this);" > 
    </asp:TreeView> 
<script language="javascript" type="text/javascript"> 
    document.getElementById('<%=TvCategories.ClientID %>').addEventListener('click', postBackByObject); 

</script> 

here

+0

仍然頁面不回發。這是下面的事件是正確的?保護無效TvCategories_TreeNodeCheckChanged(對象發件人,TreeNodeEventArgs e) { } –

+0

@CodeGuru我的代碼導致後期在歌劇和IE瀏覽器,但不是FF,所以如果我有時間會解決它,那麼不需要額外的行動,你可以改變檢查'Page_Load'上的'PostBack'。 –

+0

@mahidgeek微軟說,treeview沒有autopostback屬性。 http://msdn.microsoft.com/en-us/library/ms178259%28v=vs.80%29.aspx –