【问题标题】:Jquery Mobile: Getting a cancelled Postback that's causing a page load errorJquery Mobile:获取导致页面加载错误的取消回发
【发布时间】:2011-09-23 14:01:08
【问题描述】:

所以,这几天我一直试图让这个页面工作,当我点击发送按钮时它会工作,但如果你尝试按 Enter,它只会回发到同一页面。昨天我以为我终于得到了它,所以它可以在 chrome 上运行(它在 Firefox 上运行得很好,但在 chrome/safari 上中断了,它是一个适用于 iphone 的应用程序)。但是,即使我终于得到了它,所以它会改变页面,它现在显示一个错误。我将原因缩小到在发送我想要的回发之前被调用的回发,然后被取消。我假设取消的回发是空白的,因为我遇到的问题是页面会执行空白回发。

我通过添加“修复”了问题

javascript:if (event.keyCode == 13) __doPostBack('" & btnSearch.UniqueID & "','') 

到 txtSearch 的 onKeyPress。 asp:LinkBut​​ton 和 asp:TextBox 的结尾 html(包含在 asp:Panel 中,在 asp:Content 中,用于表单中的母版页,可能相关也可能不相关)是

<input name="ctl00$contentMain$txtSearch" id="contentMain_txtSearch" type="text" data-type="search" onkeypress="javascript:if (event.keyCode == 13) __doPostBack('ctl00$contentMain$btnSearchByIDName','')" class="...">

<a id="contentMain_btnSearch" class="..." data-role="button" onclientclick="return false;" href="javascript:__doPostBack('ctl00$contentMain$btnSearch','')" data-theme="c"><span class="..."><span class="...">Search</span></span></a>

后面的代码中有一个on按钮点击事件。

这是帖子的标题,响应和其他所有内容都是空的。

Accept:text/html, */*; q=0.01
Content-Type:application/x-www-form-urlencoded
Origin:Local.Website
Referer:Local.Website/EmployeePhoneList/PhoneList.aspx
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.186 Safari/535.1
X-Requested-With:XMLHttpRequest

任何人都知道如何弄清楚为什么要进行两次回发?或者我如何确定是什么原因造成的?感谢您的帮助。

更新:进一步查看响应,btnSearch 是不正确和正确回发的来源。此外,没有起作用的东西,AutoPostBack="false"、CauseValidation="false"、ViewStateMode="Disabled" 和 UseSubmitBehavior="false"。

【问题讨论】:

    标签: asp.net vb.net jquery-mobile postback


    【解决方案1】:

    您是否尝试过禁用 jQuery Mobile 的 Ajax 导航?这是我在 MVC 项目中的做法,在 WebForms 中应该类似:

    <script type="text/javascript" src="@Url.Content("~/Scripts/jquery-1.6.2.min.js")"></script>
    <script type="text/javascript">
       $(document).bind("mobileinit", function() {
           $.mobile.ajaxEnabled = false;
       });
    </script>
    <script type="text/javascript" src="@Url.Content("~/Scripts/jquery.mobile-1.0b2.min.js")"></script>
    

    【讨论】:

    • 是的,我们在 webapp 的两个母版页(两个站点名称,Intranet 和 Extranet)上都以这种方式禁用了 ajax。虽然昨天我确实不得不将其更改为新的方式,因为我意识到我们已经在 Alpha 中设置了它,所以它是 $.mobile.AjaxFormsEnabled = False;但这并没有解决问题。
    【解决方案2】:

    在修复另一个页面上看似无关的问题时,我们意外地修复了该问题。事实证明,即使使用 ajaxEnabled = false,有时您也需要将 data-ajax="false" 以母版页的形式放置,以使 asp.net 代码在 JQuery mobile 上正常工作。无论是那个还是 rc1 都解决了这个问题,我不确定,现在我真的不在乎了。

    【讨论】:

      猜你喜欢
      • 2012-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-22
      • 1970-01-01
      • 1970-01-01
      • 2017-01-03
      • 2023-04-04
      相关资源
      最近更新 更多