如何在ASP.NET上设置treeview的childnode postback false?

时间:2012-04-09 11:06:10

标签: c# asp.net treeview postback

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

等待你的帮助。关于我的恩惠。

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

3 个答案:

答案 0 :(得分:6)

您可以设置treeview子节点的CSSClass 喜欢

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

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

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

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

答案 1 :(得分:0)

您可以删除链接('a')标记属性的href以停止回发

typeof [1,2,3] == 'object'

这里有步骤说明:

  1. 使用inspect element:
  2. 获取包含树表的dev id
  3. 从所选子节点获取详细信息。
  4. 在获取子节点的详细信息后,删除属性“href”以避免回发。
  5. 执行与选定节点详细信息有关的任何功能(例如,使用ajax传递选定值)

答案 2 :(得分:0)

TreeNode tn = new TreeNode();

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

这两种方法都不会导致回发。