0

以下はaspxページの私のツリービューコントロールです

 <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 アプリケーションを実行したときのツリービューのイメージです。
ここに画像の説明を入力

私がしたいこと?

ルート ノードを選択すると、すべての子ノードも選択され
、子またはルートを選択すると逆に、ポストバック イベントが発生し、グリッドビューをバインドしたいという選択に基づいて発生します。

4

2 に答える 2

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> 

ここからいくつかの部分

于 2013-06-25T09:22:03.513 に答える
0

親ノードの値とともに子ノードの値を追加することをお勧めします。これにより、ユーザーの選択に基づいてグリッドビューをバインドする場合、簡単になります。

親子ノードを確認する方法を示す以下のリンクを確認してください。

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

于 2013-06-25T07:02:57.850 に答える