Ich versuche, meine Anmeldung und Abmeldung über meine Webseite zu implementieren. Es gibt zwei Panels, die umschalten. Beim Laden meiner Seite wird das Logout-Panel unsichtbar gemacht, so dass der Benutzer nur den Login-Link sehen kann. Nach dem Login wird der Login-Bereich unsichtbar gemacht und der Logout-Bereich wird sichtbar, wo sich der Logout-Link zum Ausloggen befindet. aber die Abmeldeschaltfläche löst nicht einmal das Klickereignis aus. Das ist, was ich am Ende im Browser-Fenstern angezeigt, wenn ich versuche, die Logout-Link-Button Dies ist mein aspx zu klicken Seite-Logout Linkbutton wird nicht ausgelöst Click Event
<div>
<asp:Panel ID="LoginPanel" runat="server">
<ul class="style1">
<li>Username</li>
<li><asp:TextBox ID="LoginEmail" runat="server" Width="90%" placeholder="Email" class="form-control"></asp:TextBox></li>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Email Required" ControlToValidate="LoginEmail" ForeColor="#CC0000" Font-Italic="True"></asp:RequiredFieldValidator>
<li>Password</li>
<li><asp:TextBox ID="LoginPassword" runat="server" Width="90%" placeholder="Password" class="form-control" TextMode="Password"></asp:TextBox></li>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="Password Required" ControlToValidate="LoginPassword" ForeColor="#CC0000" Font-Italic="True"></asp:RequiredFieldValidator>
<li><asp:Button ID="LoginButton" runat="server" Text="Login" class="btn btn-default" onclick="LoginButton_Click"/>
New User?<asp:HyperLink ID="new_user" runat="server" NavigateUrl="Registration.aspx">Register Here</asp:HyperLink></li>
</ul>
</asp:Panel>
<asp:Panel ID="LogoutPanel" runat="server">
<asp:LinkButton ID="LogoutLink" runat="server" Text="Logout"
onclick="LogoutLink_Click" />
</asp:Panel>
</div>
Das ist mein cs code-
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
public partial class UserMasterPage : System.Web.UI.MasterPage
{
ConnectionClass cl;
SqlDataReader dr;
string sql;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
LogoutPanel.Visible = false;
cl = new ConnectionClass();
}
}
protected void LoginButton_Click(object sender, EventArgs e)
{
sql = "select Id, Email_, Password_, Block from MemberLogin where Email_='" + LoginEmail.Text + "'";
cl = new ConnectionClass();
cl.establishConnection();
cl.createReaderCommand(sql);
dr = cl.executeReaderCommand();
if (dr.HasRows)
{
if (LoginPassword.Text == dr["Password_"].ToString())
{
if (dr["Block"].ToString() == "False")
{
Session["user"] = dr[0].ToString();
LoginPanel.Visible = false;
LogoutPanel.Visible = true;
//Response.Write("login successful");
}
}
}
cl.closeConnection();
}
protected void LogoutLink_Click(object sender, EventArgs e)
{
Session.Abandon();
Response.Redirect("AdminLogin.aspx");
}
}
Dieses ist auf meiner Masterseite. Ich muss dieses Problem sehr bald lösen. Bitte helfen Sie mir dabei. Vielen Dank im Voraus.
das hat funktioniert, aber jetzt klickt jeder Link auf meiner Seite nicht Klick-Taste. also was soll ich tun? fügen Sie jedem Steuerelement eine Ursachevalidierung hinzu? Es gibt so viele von ihnen! –
Ein oder mehrere Validatoren müssen aktiv sein und das Postback verhindern. Um die "Schuldigen" zu finden, können Sie nach und nach "Enabled =" false "" auf den Validatoren im Markup setzen, bis das Postback funktioniert. Sie könnten dann entscheiden, in welchen Situationen jeder aktiviert oder deaktiviert werden soll (in Code-Behind), so dass Sie auf all Ihren Buttons nicht "CausesValidation =" false "" setzen müssen. Auf der anderen Seite ist dieses Attribut für Steuerelemente sinnvoll, die eindeutig keine Validierung auslösen sollten, wie das Abmelden von LinkButton. – ConnorsFan
danke @ConnorsFan –