1

我正在研究 jQuery 移动控件。我在母版页中有一个 jqgrid,单击选定的行 ID 后,我将重定向到具有该 ID 的另一个页面。在那个页面中,我有下拉列表,它与 json 绑定。绑定后,我想通过单击按钮将数据保存到数据库。

问题是按钮单击事件没有触发,但是,当我自己运行该特定 aspx 时,按钮单击事件确实会触发。

 <a href="#" data-role="button" data-inline="true" id="btnsave"  data-transition="fade" 
      data-theme="b" data-icon="check" data-iconpos="right" runat="server" 
      onserverclick="btnsave_click" >Save</a>
4

1 回答 1

0

尝试添加data-ajax="false"到您的链接。

例如

<a href="#" data-role="button" data-ajax="false" data-inline="true" id="btnsave"
         data-transition="fade" data-theme="b"  data-icon="check" data-iconpos="right" 
         runat="server" onserverclick="btnsave_click" >Save</a>

现在解释一下,默认情况下,当您链接到 jQuery Mobile 中的页面时,JQM 通过 ajax 拉入该页面并将其附加到当前页面的 DOM。当 JQM 通过 ajax 拉入页面时,它只会拉入该页面,data-role="page"不会加载可能在<head>页面上或其他地方的任何资源。

从你的问题和标记听起来你正在使用 asp.net,没有看到任何更多的标记/代码我很确定你的问题是你的母版页上的链接页面没有必要的代码.

通常要解决此问题,您可以将唯一内容放在链接页面的data=role="page"div 中,或者在调用页面时确保页面已完全加载,即没有 ajax。在您的情况下,因为看起来您正在尝试调用服务器方法,因此创建回发的代码可能在您的第二个页面的 div 之外,在这种情况下,您需要在没有 ajax 的情况下加载页面,最简单的方法是通过添加data-ajax="false"到您的链接。

于 2012-12-04T15:29:47.890 回答