【发布时间】:2013-05-14 20:16:19
【问题描述】:
可能没有办法做到这一点,但我想我会问。我对asp.net 比较陌生,已经玩了大约一个星期了。我现在拥有的是一个调用 Web 服务的页面,轮询它直到它完成(在 UpdatePanel 中显示进度),然后隐藏进度文本,而是通过创建显示结果(带有一些元数据的文件的递归列表)一个 TreeView 并将其添加到 UpdatePanel。我想要的是单击 TreeView 中的一个节点来更新第二个 UpdatePanel,其中包含有关刚刚单击的节点的扩展信息(在服务器端获得)。我看不到任何方法可以通过单击 TreeNode 来调用代码隐藏函数,但我可以通过将节点的 NavigateUrl 设置为“javascript:function([节点的完整路径]) 来调用 Javascript 代码”。
不过,在这一点上,我有点难过。 StackOverflow 充满了关于如何从 javascript(使用 WebMethod 或等效方法)回调代码隐藏的正确回答的问题,但显然您不能调用非静态代码,这意味着我无法修改页面本身,或者就此而言,访问会话或页面状态。 StackOverflow 也充满了关于如何让 JavaScript 请求 UpdatePanel 刷新自身 (__doPostBack()) 的问题,但是如果没有任何方式与服务器通信点击了什么,UpdatePanel 将不知道要显示什么。
因此,我希望有一个问题的答案:我是否缺少一些巧妙的方法让页面上的 javascript 触发一个服务器端函数,该函数能够获取参数并使用它来执行部分回发不同的更新面板?
谢谢!
【问题讨论】:
-
对于碰巧遇到这个问题的其他人:我无法得到下面的答案来工作,所以我完全避开了这个问题,而不是关于 same 页面,而不是使用灯箱插件在气泡中打开一个 new 页面,其中包含我希望在单击时显示的信息。效果很好,满足了所有要求。
标签: javascript asp.net ajax treeview updatepanel