1

我有一个树视图,我不想在单击任何子节点时回发。我将获得选定的子节点值。当我设置“node_.SelectAction = TreeNodeSelectAction.None;”时,我找到了一个解决方案 我无法选择任何子节点,也没有突出显示它。

等待你的帮助。对不起我的恩。

ASP:

<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);
    }
}
4

3 回答 3

6

您可以设置树视图子节点的 CSSClass,例如

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

然后使用 jquery 你得到类并设置 return false 如下所示。

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

...同样的方式你可以设置 RootNodeStyle-CssClass、ParentNodeStyle-CssClass 类并使用 jquery 来设置它们...

于 2012-04-09T11:35:22.950 回答
0

您可以删除 link('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 传递选定的值)
于 2016-08-29T07:18:42.103 回答
0
TreeNode tn = new TreeNode();

tn.SelectAction = TreeNodeSelectAction.None; OR tn.SelectAction = TreeNodeSelectAction.Expand;

这两者都不会导致回发。

于 2018-06-29T10:36:16.417 回答