2

我有一个与另一个问题中描述的问题类似的问题:aspnet webforms disable button on submit。在我添加 jQuery 和 jQuery mobile 之前,我的 ASP.NET Web 窗体站点运行良好。使用 NuGet 安装这些包后,我的图像按钮的代码将被忽略。在我设置之前,一个简单的按钮与图像按钮有类似的问题UseSubmitBehavior="true"。禁用 jQuery Mobile 足以重新启用按钮功能。还有一个奇怪的问题是 IE10 的“查看源代码”返回上一页的标记,而开发人员菜单显示实际的 XHTML——我不知道这是否相关。

我的代码通常应该在单击图像按钮后运行,Protected Sub BTNtoggleHole_Click(sender As Object, e As ImageClickEventArgs) Handles BTNtoggleHole.Click但它拒绝了,所以我强制它在Public Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load. 我缺少一些页面生命周期的东西吗?

以下是不再触发任何服务器端代码的按钮:

<asp:ImageButton ID="BTNtoggleHole" runat="server" Style="float: right;" ImageUrl="~/Images/Buttons/Handicaps/9-hole-toggle.png" CausesValidation="False" ClientIDMode="Inherit" AlternateText="18/9 hole toggle" />

无论 jQuery 是否被注释掉、不存在或禁用,单击该按钮都会导致回发。

4

1 回答 1

0

我遇到了与 LinkBut​​tons 类似的东西。事实证明,某些移动浏览器和控件的 JavaScript 处理方式存在问题。您可以为某些浏览器设置 ClientTarget="uplevel" 来解决此问题。我在我的页面的基类中添加了以下内容,以便让事情变得简单:

    ' HACK: This is needed to get LinkButtons working in Chrome for Mobile (on iOS)
    ' This has to be in the page and cannot be in the masterpage or control.
    ' https://stackoverflow.com/questions/11591776/chrome-on-ipad-not-working-with-asp-net-4
    Protected Overrides Sub OnPreInit(ByVal e As System.EventArgs)
        If Request.UserAgent IsNot Nothing AndAlso _
            (Request.UserAgent.IndexOf("AppleWebKit") > -1 OrElse _
             Request.UserAgent.IndexOf("chrome") > -1 OrElse _
             Request.UserAgent.IndexOf("crios") > -1) Then
            Me.ClientTarget = "uplevel"
        End If
        MyBase.OnPreInit(e)
    End Sub

同样,这对我来说适用于 LinKButtons,但 ImageButton 可能非常相似。有关更多详细信息,请参阅此 SO 问题:iPad 上的 Chrome 不使用 ASP.NET 4

于 2014-02-21T03:17:57.407 回答