如何使“asp:Button”在“菜单导航”中工作

本文关键字:导航 菜单导航 工作 菜单 asp Button 何使 | 更新日期: 2023-09-27 18:03:03

我正在尝试集成" jquery "。
似乎" asp:Button "不能在" mmenu nav "中工作。
"asp:LinkButton"似乎也不能完全发挥作用。
以登录为例:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="default.aspx.cs" Inherits="test._default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <script src="Scripts/jquery-2.1.4.min.js"></script>
    <script src="Scripts/jquery-ui-1.11.4.min.js"></script>
    <script src="Scripts/jquery.mmenu.min.all.js"></script>
    <link href="Content/themes/base/all.css" rel="stylesheet" />
    <link href="Content/themes/base/jquery.mmenu.all.css" rel="stylesheet" />
    <title></title>
    <script>
        $(document).ready(function () {
            $("#login").mmenu({
            });
        });
    </script>
</head>
<body>
    <div>
        <form id="form1" runat="server">
            <a href="#login">Open login pannel</a><br />
            <asp:LoginStatus ID="LoginStatus1" runat="server" LogoutAction="Redirect" LoginText="login" LogoutText="logout" LogoutPageUrl="~/" /><br />
            <nav id="login">
                <div>
                    <asp:Label ID="UserNameLabel" runat="server">User:</asp:Label><br />
                    <asp:TextBox ID="UserNameTextBox" runat="server"></asp:TextBox><br />
                    <asp:Label ID="PasswordLabel" runat="server">Password:</asp:Label><br />
                    <asp:TextBox ID="PasswordTextBox" runat="server" TextMode="Password"></asp:TextBox><br />
                    <asp:Button ID="LoginButton" runat="server" ClientIDMode="Static" Text="Login Button" OnClick="LoginButton_Click" /><br />
                    <asp:LinkButton ID="LoginLinkButton" runat="server"  ClientIDMode="Static" OnClick="LoginLinkButton_Click">Login LinkButton</asp:LinkButton>
                </div>
            </nav>
        </form>
    </div>
</body>
</html>


代码如下:

using System;
using System.Web.Security;
namespace test
{
    public partial class _default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }
        protected void LoginButton_Click(object sender, EventArgs e)
        {
            if (Membership.ValidateUser(UserNameTextBox.Text, PasswordTextBox.Text))
            {
                FormsAuthentication.RedirectFromLoginPage(UserNameTextBox.Text, false);
            }
        }
        protected void LoginLinkButton_Click(object sender, EventArgs e)
        {
            if (Membership.ValidateUser(UserNameTextBox.Text, PasswordTextBox.Text))
            {
                FormsAuthentication.RedirectFromLoginPage(UserNameTextBox.Text, false);
            }
        }
    }
}

asp:Button不返回。
链接按钮无法登录。
有办法让它工作吗?
谢谢。

如何使“asp:Button”在“菜单导航”中工作

Web表单大多数时候会更改元素的名称,而jquery需要确切的名称来查找您的按钮。将此属性添加到按钮并再次测试

ClientIDMode ="静态"

mmenu插件从HTML中获取nav#登录,并将其直接放回BODY中。也就是说,输入和按钮不再位于表单内部(因此不会提交表单)。

基本上,如果你把表单放在nav# login中,就会像预期的那样工作。