2012-04-09 2 views
1

나는 treeview가 있고 어떤 childnodes.And 나는 선택 childnode 가치를 얻을 것이다 아무 포스트 백을 원하지 않는다. 해결책을 찾았습니다. "node_.SelectAction = TreeNodeSelectAction.None;" 어떤 자식 노드도 선택하지 않고 강조 표시하지 않습니다.ASP.NET에서 treeview의 childnode 포스트 백을 false로 설정하는 방법은 무엇입니까?

귀하의 도움을 기다리고 있습니다.

영문 :

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

고사 : 당신이 클래스를 얻을 수 및 false를 돌려 설정 다음

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

jQuery를 사용하여

처럼

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

당신은 트 리뷰의 자식 노드의 CSSClass을 설정할 수 있습니다 따르십시오. 당신은 ('A') 태그 속성 링크의 HREF를 제거 할 수

+0

감사합니다? – Mennan

+0

실제로 달성하고자하는 것? 코드에서 selectedchildnode 값을 얻고 싶습니까? – Usman

+0

예 selectchildnode 값을 얻고 싶습니다. 코드 뒤에서 "onchildnodeclick"처럼 보이지 않습니다. – Mennan

0

당신이 RootNodeStyle-CssClass, ParentNodeStyle-CssClass 클래스와이를 설정하는 사용 jQuery를 설정할 수 있습니다

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

... 같은 방법으로 ... 여기

$('#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. 요소를 검사 사용하여 트리 테이블이 포함 된 디바이스 ID를 가져옵니다 :
  2. 선택한 하위 노드에서 세부 정보를 가져옵니다.
  3. 자식 노드의 세부 정보를 가져온 후 다시 게시하지 않으려면 특성 "href"를 제거하십시오.
  4. 무엇 이건 기능 선택된 노드 세부 무엇을 당신이 (예를 들어, Ajax를 사용하여 선택된 값 통과) 내가 selectedchildnode을 얻을 수있는 방법, 그것은 다시 게시 작동
관련 문제