0

有可能没有办法做到这一点,但我想我会问。我对asp.net 比较陌生,已经玩了大约一个星期了。我现在拥有的是一个调用 Web 服务的页面,轮询它直到它完成(在 UpdatePanel 中显示进度),然后隐藏进度文本,而是通过创建显示结果(带有一些元数据的文件的递归列表)一个 TreeView 并将其添加到 UpdatePanel。我想要的是单击 TreeView 中的一个节点来更新第二个 UpdatePanel,其中包含有关刚刚单击的节点的扩展信息(在服务器端获得)。我看不到任何方法可以通过单击 TreeNode 来调用代码隐藏函数,但我可以通过将节点的 NavigateUrl 设置为“javascript:

不过,在这一点上,我有点难过。StackOverflow 充满了关于如何从 javascript(使用 WebMethod 或等效方法)回调代码隐藏的正确回答的问题,但显然您不能调用非静态代码,这意味着我无法修改页面本身,或者就此而言,访问会话或页面状态。StackOverflow 也充满了关于如何让 JavaScript 请求 UpdatePanel 刷新自身 (__doPostBack()) 的问题,但是如果没有任何方式与服务器通信点击了什么,UpdatePanel 将不知道要显示什么。

因此,这个问题,我希望有一个答案:我是否错过了一些巧妙的方法来让页面上的 javascript 触发一个服务器端函数,该函数能够获取一个参数并使用它来执行不同 UpdatePanel 的部分回发?

谢谢!

4

1 回答 1

0

其实这很简单。只需在第二个更新面板中放置一个 LinkBut​​ton(它可以有一个空文本,因此不可见),在 JavaScript 中调用.click()该控件的客户端方法,并在 ASP.NET 中处理服务器端OnClick事件。

于 2013-05-14T21:10:36.073 回答