2013-06-25 49 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 –