2

我一直在通过这个网站寻找答案,但我被困住了。

有人可以帮我解决以下问题。我有一个用 VB 编写的 ASP.NET 项目并使用 jQuery Mobile 1.2.0 版本。

我有一个默认页面,其中有 2 个按钮(登录/关于),这些按钮可以工作并重定向到登录页面。但是在登录页面上,登录按钮事件不会触发 - 它只是重新定向回默认页面。在带有简单重定向按钮的 about 页面上也是如此。

但是,如果我刷新登录页面,那么按钮是否有效?

下面是代码:

<%@ Page Title="Login" Language="vb" EnableEventValidation="false" AutoEventWireup="false" MasterPageFile="~/Site.Master" CodeBehind="login.aspx.vb" Inherits="Sequencing.login" %>
<asp:Content ID="Content1" ContentPlaceHolderID="page_title" runat="server">
Login
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="pageheader" runat="server">
<h1>Login</h1>
</asp:Content>

<asp:Content ID="Content4" ContentPlaceHolderID="body" runat="server">

<asp:LinkButton ID="LinkButton1" data-role="button" data-rel="dialog" 
    data-transition="pop" runat="server" 
    Visible="False">LinkButton</asp:LinkButton>

<div align=center class="ui-bar ui-bar-c">

<asp:Image ID="Image1" runat="server" ImageUrl="~/images/McD_logoimage.png" /><br />

<h3>Planning the Future</h3>

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
   <ContentTemplate>

<asp:Login ID="Login1" DestinationPageUrl="~/user/Main.aspx" runat="server" Width="100%">
<LayoutTemplate>
<asp:TextBox ID="UserName" runat="server" value placeholder="Username"></asp:TextBox>
<asp:RequiredFieldValidator ID="cvUserName" runat="server" ControlToValidate="UserName" ToolTip="User Name is required." ValidationGroup="Login1" Display="Dynamic">    </asp:RequiredFieldValidator>
<asp:TextBox ID="Password" runat="server" type="password" runat="server" value placeholder="Password"></asp:TextBox>
<asp:RequiredFieldValidator ID="cvPassword" runat="server" ControlToValidate="Password"     ToolTip="Password is required." ValidationGroup="Login1" Display="Dynamic">            </asp:RequiredFieldValidator>
<asp:CheckBox ID="RememberMe" runat="server" Text="Remember me!" />
<asp:Literal ID="FailureText" runat="server" EnableViewState="False"></asp:Literal>
<asp:Button ID="LoginButton" runat="server" data-role="button" data-theme="b"     CommandName="Login" Text="Log In" ValidationGroup="Login1" onclick="LoginButton_Click" />
    </LayoutTemplate>
</asp:Login>
    </ContentTemplate> 
</asp:UpdatePanel>
</div>
</asp:Content>

提前感谢您的帮助。

除此之外 - 我已经查看了如何禁用 jQuery Mobile 并将代码添加到引用 jQuery 的站点主控器中 - 但是仍然没有乐趣!

<script>
    $(document).bind("mobileinit", function () {
        //apply overrides here
        $.mobile.ajaxEnabled = false;
    });
</script>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js">    </script>
<script type="text/javascript"     src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>

其他人有任何想法吗?

4

3 回答 3

2

打开jQuery-mobile.js并搜索“提交”,提交行为在移动版中的实现方式有所不同.js

所以请评论一下手机中的提交功能js,然后您的asp.net表单将根据其行为提交。

在 mobile 中评论该提交行为js,您不会失去任何功能,因此只需将其评论出来。

于 2013-02-14T08:13:25.513 回答
1

刷新登录页面后,您将看到表单如下所示:

<form method="post" action="Login.aspx" onsubmit="javascript:return WebForm_OnSubmit();" id="form1" class="ui-mobile-viewport ui-overlay-c">

但是,如果您注意到,当您第一次导航到http://seq-dev.rs-mcd.co.uk/,然后单击“登录”时,<form>登录页面上的元素如下所示:

<form method="post" action="" id="form1" class="ui-mobile-viewport ui-overlay-c">

请注意,该表单没有正确的actiononsubmitASP .NET 正常工作所需的值。

我对 jQuery Mobile 没有太多经验,但我确实看到它正在发挥其“AJAX 导航”的魔力,这与 ASP .NET 很矛盾。一般来说,ASP .NET 不能很好地与 jQuery mobile 配合使用(或者相反?)。也许您可以以某种方式禁用 AJAX 导航 - 这可能会奏效。如果您不能禁用 AJAX 导航,您将继续在 ASP .NET 中遇到服务器端事件的问题。

希望这会为您指明正确的方向。

编辑

经过一番搜索,我发现这篇博客文章解释了如何禁用 jQuery Mobile AJAX 导航。这是相关的片段:

<script type="text/javascript">
  $(function() {
    // disable ajax nav
    $.mobile.ajaxLinksEnabled = false;
  });
</script>

希望这可以帮助!

于 2012-11-30T13:43:22.183 回答
0

您需要将提交行为设置为 false,然后添加如下所示的 OnClick 事件。

.aspx 页面 - asp:Button runat="server" ID="btnSubmit" Text="Submit" CssClass="Button" UseSubmitBehavior="false" OnClick="btnSubmit_Click">

.aspx.vb 页面 -

区域“按钮点击提交”

Protected Sub btnSubmit_Click(sender As Object, e As EventArgs)

    Response.Redirect("CanegateMidShiftTempB6TY.aspx")

End Sub

结束区域

于 2020-06-18T07:09:05.043 回答