Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net treeview事件的客户端脚本_Asp.net - Fatal编程技术网

Asp.net treeview事件的客户端脚本

Asp.net treeview事件的客户端脚本,asp.net,Asp.net,我有一个“populateOnDemand”设置为true的树视图。我希望此树视图将其状态(节点展开/折叠)从一个页面切换到另一个页面。Viewstate不工作,因为每个页面的树视图都不同。这是我目前的代码 ASPX页面: <asp:TreeView ID="arbre" EnableViewState="true" PopulateNodesFromClient="true" runat="server" /

我有一个“populateOnDemand”设置为true的树视图。我希望此树视图将其状态(节点展开/折叠)从一个页面切换到另一个页面。Viewstate不工作,因为每个页面的树视图都不同。这是我目前的代码

ASPX页面:

<asp:TreeView
          ID="arbre"
          EnableViewState="true"
          PopulateNodesFromClient="true"
          runat="server" />
这很好,但是我希望每次用户展开或折叠节点时都能避免回发。我知道我可以将EnebleClientScript设置为true,并在Javascript中管理事件客户端,但我将无法再使用会话变量。有没有办法做到这一点


谢谢

我会在一定程度上回答自己的问题

我做了一些测试和研究,EnableClientScript默认为true,实际上意味着扩展和折叠操作由客户端处理,由.Net framework自动生成的Javascript代码处理。你不能编辑它

显然,如果您需要在用户展开或折叠时添加自定义操作,则必须使用TreeNodeExpanded和TreeNodeCollapsed事件,就像我上面所做的那样,并且无法避免回发,因为它们是在服务器端触发的

Protected Sub arbre_TreeNodeCollapsed(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.TreeNodeEventArgs) Handles arbre.TreeNodeCollapsed
    CType(Session("listeNoeudsOuverts"), Hashtable)(e.Node.Value) = True
End Sub

Protected Sub arbre_TreeNodeExpanded(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.TreeNodeEventArgs) Handles arbre.TreeNodeExpanded
    CType(Session("listeNoeudsOuverts"), Hashtable)(e.Node.Value) = False
End Sub


Protected Sub arbre_TreeNodePopulate(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.TreeNodeEventArgs) Handles arbre.TreeNodePopulate
    // code to populate nodes
    CType(Session("listeNoeudsOuverts"), Hashtable)(e.Node.Value) = True
End Sub

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Session("listeNoeudsOuverts") Is Nothing Then
        Session("listeNoeudsOuverts") = New Hashtable()
    End If
    // other stuff
End Sub