1

我有一个 asp.net 页面,在 UpdatePanel 中嵌入了一个计时器(UpdateMode="Conditional",ChildAsTriggers="false")。计时器负责每隔几秒更新该页面的某些组件。

页面上还有一些 HyperLink 控件,单击它们会打开一个 JQueryMobile 对话框(data-rel="dialog")。问题是我提到的计时器每隔几秒就会导致回发。因此,当打开然后关闭对话框时,之后的第一个此类回发会导致对话框再次打开。

使用 rel="external" 作为我提到的超链接的另一个属性可以解决问题,但这对我来说不是解决方案。这会导致完全重定向到对话框页面,而不是使用 AJAX 显示它(就像在当前页面的顶部一样)。

我的想法是在单击任何超链接时停止计时器。这解决了问题,但我不知道如何在对话框关闭时再次启动计时器。是否可以检测 JQueryMobile 对话框何时关闭?我知道,这听起来很愚蠢,但我想不出更好的主意。请你帮帮我好吗?

所以基本上,我不希望 JQueryMobile 对话框页面在计时器滴答后第二次出现。你能告诉我如何做到这一点吗?

4

1 回答 1

2

带有 asp.net Web 窗体和UpdatePannel? 这听起来像是一个可怕的组合。

jQuery Mobile 和 Web 表单基本上不能很好地协同工作。Web 窗体的具体问题需要一个<form />包含所有控件(和大多数内容)的元素。jQuery Mobile 尝试通过 ajax 加载来构建具有“虚拟”页面的 DOM。通过提交整个表单而不是在每个页面模板中找到的单个表单,这打破了 PostBack 模型。现在扔进UpdatePanels去...

您唯一的希望是只使用单页模板并禁用data-ajax="false"链接和表单上的所有 ajax 加载。只是说不UpdatePanels

asp.net MVC 可以让您更好地控制这些问题。

于 2012-11-15T17:09:24.837 回答