日期:2014-05-17  浏览次数:20409 次

treeview展开保持的问题,想不通
页面很简单:一个updatepanel里面有一个LinkButton,和一个treeview
实现的功能是:点击LinkButton后调用方法showtree动态取得产品结构数据显示在treeview中

test.aspx:

<asp:UpdatePanel ID="UpdatePanel3" runat="server">
<ContentTemplate>

<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click">LinkButton</asp:LinkButton><br />

<asp:TreeView ID="tv1" runat="server">
<Nodes>
<asp:TreeNode Text="请选择……" Value="-1"></asp:TreeNode>
</Nodes>
</asp:TreeView>

</ContentTemplate>
</asp:UpdatePanel>


test.vb:
…………
Protected Sub LinkButton1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
  showTree(62)
End Sub


问题:

当对点击LinkButton生成的树进行选择操作,引发updatepanel更新后,treeview不能保持节点的展开状态,能保持选中状态。

但是如果在page_load里面调用showtree(62)生成结构树,则没有问题(既能保持选中状态,也能保持展开状态)
 If Not Page.IsPostBack Then
  showTree(62)
 End If



我想不通这两者有啥区别,都是执行一次,页面回发时都不重建结构树的呀

------解决方案--------------------
还是没有看明白,如果你调用的程序没有问题的话,应该是一样的;你调试一下看看执行顺序就知道问题在哪里了
------解决方案--------------------
我记得很清楚,曾经确认过TreeView、Menu这两个控件不能放在UpdatePanel中。不知道现在SP1有没有解决。如果你找不到分析了TreeView源代码的人的分析,就不要把TreeView方法UpdatePanel中。TreeView本身可以支持客户端回调技术来Ajax方式动态加载子节点,只是需要设置一两个特殊属性而已。

http://www.google.cn/search?hl=zh-CN&newwindow=1&rls=com.microsoft%3A*%3AIE-SearchBox&rlz=1I7GGIJ&q=treeview+updatepanel&btnG=Google+%E6%90%9C%E7%B4%A2&meta=&aq=f&oq=
------解决方案--------------------
学习,帮顶!