带有复选框的Asp.net Treeview

时间:2013-06-25 05:44:13

标签: c# asp.net checkbox treeview

下面是我在aspx页面中的treeview控件

 <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。

2 个答案:

答案 0 :(得分:0)

我建议你将子节点值与父节点值一起追加,这样当你想根据用户选择绑定gridview时,它就很容易了。

查看下面显示如何检查父子节点的链接:

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

您可以使用treeview的Checkednodes属性来估计树视图的已检查节点。

查看以下链接,了解如何操作。

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

答案 1 :(得分: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

的部分内容