回发前的 ASP.NET TreeView javascript

标签 asp.net javascript ajax treeview updatepanel

我正在尝试使用 TreeViews 和 UpdatePanels 编写我认为是相当常规的 AJAX 模式的代码。我的情况是这样的:

我在 UpdatePanel 中有一个 TreeView。我在另一个 UpdatePanel 中有一个文字。当用户单击 TreeView 中的一个节点时,Literal 的内容会更新。现在,由于整个事情是异步的,所以在点击和文字内容更新之间当然存在时间延迟。这段时间,我想做两件事:

1) 显示更新进度,以及

2)清除Literal的内容

这样用户就不必在异步加载新文本时盯着旧内容。

我似乎想不出一个简单的方法来完成 (2)。我一直在阅读客户端回调并使用 GetCallbackEventReference,但对于看似简单的问题,这似乎是一种非常复杂的方法。

理想情况下,我想让 TreeView 独自完成它的工作。我不想自己获取内容并使用JS将它们添加到TreeView。我只想在客户端检测节点更改事件,清除 Literal,让 TreeView 继续正常运行。

这可能吗?还是客户回电是我唯一的选择?

最佳答案

您会想要使用 ASP.NET AJAX 库中的 PageRequestManager。这是 PRM 的 MSDN 引用 - http://msdn.microsoft.com/en-us/library/bb311028.aspx .

请注意,Microsoft 已声明 TreeView 在 UpdatePanel 中可能存在问题,您还需要非常注意性能,特别是如果您有一个大型 TreeView(请参阅我的有关优化 UpdatePanel 性能的文章 - http://www.aaron-powell.com/blog.aspx?id=1195)。您真的应该看看类似 jQuery 插件的东西(例如:http://bassistance.de/jquery-plugins/jquery-plugin-treeview/)。

但要真正回答您的问题,您需要:

  • 有一个 BeginRequest 事件处理程序,它会清除你的文字,甚至可以显示正在加载(我不喜欢 UpdateProgress,我更喜欢我自己做的更精细的控制)
  • 使用EndRequest 事件确保加载组件消失

您还可以使 TreeView 成为页面上第二个 UpdatePanel 的 AsyncPostbackTrigger,或者在 TreeView 的异步回发期间调用它的 Update 方法

关于回发前的 ASP.NET TreeView javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/388312/

相关文章:

c# - 在页面加载时运行 Javascript

javascript - 如何在第二次打开时只刷新jquery对话框的内容

javascript - 在 ASP.NET 中运行时更改表单 ID 和表单操作

asp.net - ASMX技术完全过时了吗

Javascript自定义console.log

javascript - 在不弄乱 UTF-8 字符串的情况下获取子字符串

javascript - Jquery AJAX 请求,在 URL 深处带有哈希值

javascript - get() 请求中的条件

jquery - 文本字段中的特殊字符

c# - GridView 链接列值