2012-04-09 23 views
1

私はtreeviewを持っており、私はchildnodes.Andを選択したchildnodeの値を取得します。 "node_.SelectAction = TreeNodeSelectAction.None;"を設定すると解決策が見つかりました。私はどんな子ノードも選択することはできません。ASP.NETでtreeviewのchildnodeポストバックをfalseに設定するにはどうすればよいですか?

あなたの助けを待っています。

ASPX:

<asp:TreeView ID="TreeView1" runat="server"></asp:TreeView> 

のCs:

TreeView1.Nodes.Clear(); 
TreeView1.TreeNodeExpanded += new TreeNodeEventHandler(TreeView1_TreeNodeExpanded); 

DataTable dt = ImzaDll.Imza.KategorileriGetir(true); 

foreach (DataRow row in dt.Rows) 
{ 
    TreeNode node_ = new TreeNode(); 
    node_.Text = row["ACIKLAMA"].ToString(); 
    node_.Value = row["KATEGORI"].ToString(); 
    TreeView1.Nodes.Add(node_); 
} 



void TreeView1_TreeNodeExpanded(object sender, TreeNodeEventArgs e) 
{ 
    addChildNodes(e.Node); 
} 



private void addChildNodes(TreeNode node) 
{ 
    DataTable dt = ImzaDll.Imza.KutuphaneBasliklariGetir(true, node.Value.ToString()); 

    foreach (DataRow row in dt.Rows) 
    { 
     TreeNode childNode = new TreeNode(); 
     childNode.Text = row["BASLIK"].ToString(); 
     childNode.Value = row["KUTUPHANE_ID"].ToString(); 
     childNode.ToolTip = row["BASLIK"].ToString() + " kütüphanesini ekle"; 
     childNode.Target = "_new"; 


     node.ChildNodes.Add(childNode); 
    } 
} 

答えて

6

あなたがクラスを取得し、falseを返すセットされますjqueryのを使用して、その後、ツリービューの子ノードの

 <asp:TreeView LeafNodeStyle-CssClass="childnode" runat="server">....</asp:TreeView> 

よう をのCssClassを設定することができます続くような。

 $(".childnode").click(function(){ 
       return false; 
     }) 

あなたは、RootNodeStyle-のCssClassを設定ParentNodeStyle-のCssClassクラスとそれらを設定するためにjqueryのを使用することができます...同じように...

+0

おかげで、どのように私はselectedchildnodeを得ることができますか? – Mennan

+0

実際に何を達成したいのですか?コード内でselectedchildnodeの値を取得したいですか? – Usman

+0

はい私はselectedchildnodeの値を取得したいと思っています。私はそのコードの "onchildnodeclick"のように見えません。 – Mennan

0

あなたは、リンク( 'A')タグ属性のhrefを削除することができここで

$('#ctl00_ContentPlaceHolder1_tvHierarchyView table tr td>a').click(function() { 
     var treeViewData = window["<%=tvHierarchyView.ClientID%>" + "_Data"];   
     if (treeViewData.selectedNodeID.value != "") {  
      var selectedNode=document.getElementById(treeViewData.selectedNodeID.value);  
      var value = selectedNode.href.substring(selectedNode.href.indexOf(",") + 3, selectedNode.href.length - 2);     
      var text = selectedNode.innerHTML; 
      alert("Text: " + text + "\r\n" + "Value: " + value); 
     } else { 
       alert("No node selected.") 
      } 
       $(this).removeAttr("href"); 

      /// ...................... rest of your code 

}); /// End of click function  
}); /// End of document ready function 

をポストバックを停止することが説明手順:

  1. 要素を検査使用したツリーテーブルが含まれているのdevのIDを取得します。
  2. 選択した子ノードから詳細を取得します。
  3. 子ノードの詳細を取得した後、属性「href」を削除してポストバックを回避します。
  4. ドゥ選択したノードの詳細情報をどうあなたは何をどのような機能(例えば、AJAXを使用して、選択した値を渡す)、それはポストバックのために働く
関連する問題