自分のウェブページからログインとログアウトを実装しようとしています。トグルする2つのパネルがあります。私のページが読み込まれると、ログアウトパネルが見えなくなり、ユーザーはログインリンクしか見ることができなくなります。ログイン後、ログインパネルが非表示になり、ログアウトパネルが表示され、ログアウト用のリンクがログアウトする場所に表示されます。ログアウトリンクボタンはクリックイベントを発生させません。これは私がログアウトリンクボタンをクリックしようとすると、私は、これはこれは私のcsはログアウトリンクボタンがクリックイベントを発生していません
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");
}
}
これをコード - ある
<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>
PAGE-私のaspxある 下部のブラウザウィンドウに表示されるものです私のマスターページにあります。私はすぐにこの問題を解決する必要があります。これで私を助けてください。事前に感謝します。
私のページのすべてのリンクは、クリックボタンを発射していません。だから何をすべきか?各コントロールにcausevalidationを追加しますか?それらの非常に多くがあります! –
1つまたは複数のバリデータがアクティブで、ポストバックを防止する必要があります。 「有罪」のものを見つけるために、ポストバックが働くまで、マークアップのバリデータで徐々に 'Enabled =" false "を設定することができます。次に、すべてのボタンに対して 'CausesValidation =" false "を設定する必要がないように、それぞれの状況を有効または無効にする(コードビハインドで)かどうかを決めることができます。一方、その属性は、ログアウトLinkButtonのように、検証を行うべきではないコントロールに対しては意味があります。 – ConnorsFan
ありがとう@ConnorsFan –