deaMedlem sedan dec. 2002387 inlägg CS0117: 'ASP.login_aspx' does not contain a definition for 'LoginBtn_Click'
[red]Line 12:[/red] <asp:button id="LoginBtn" OnClick="LoginBtn_Click" Text="login" runat="server" />
vad är det för fel?
här kommer min kod
aspx koden:
<%@ Page language="c#" Codebehind="login.aspx.cs" AutoEventWireup="false" %>
<HTML>
<HEAD>
<title>Login</title>
</HEAD>
<body>
<form runat="server" ID="Form1">
Namn:<asp:textbox MaxLength="15" id="UserID" runat="server" />
<br>
Lösen:<asp:textbox MaxLength="15" id="PassWrd" runat="server" TextMode="Password" />
<br>
<asp:button id="LoginBtn" OnClick="LoginBtn_Click" Text="login" runat="server" />
<br>
<asp:label id="lblMessage" runat="server" ForeColor="Red" Font-Size="8pt" Font-Name="Verdana" />
</form>
</body>
</HTML>
aspx.cs koden:
public class login : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox UserID;
protected System.Web.UI.WebControls.TextBox PassWrd;
protected System.Web.UI.WebControls.Button LoginBtn;
protected System.Web.UI.WebControls.Label lblMessage;
void Page_Load(System.Object sender, System.EventArgs e)
{
lblMessage.Text = "Skriv in namn och lösen !!";
}
protected void LoginBtn_Click(System.Object sender, System.EventArgs e)
{
if (UserID.Text == "hej" && PassWrd.Text == "svejs")
{
FormsAuthenticationTicket Kodexempel = new FormsAuthenticationTicket(UserID.Text, true, 5000);
FormsAuthentication.RedirectFromLoginPage(UserID.Text, true);
Response.Redirect("protected/addpicture.aspx");
}
else
{
lblMessage.Text = "Fel Namn eller Lösen !!";
}
}
PDahlenMedlem sedan apr. 2004778 inlägg Din LoginBtn_Click är protected utan Handles. Jag kör visserligen VB i vanliga fall men det är något liknande med C#.
JosefMedlem sedan mars 20023 561 inlägg Du får lägga till en rad i funktionen InitializeComponent. Någonting liknande: LoginBtn.Click += new EventHandler(LoginBtn_Click);
PDahlenMedlem sedan apr. 2004778 inlägg Men, läste lite om det, om man lägger till en EventHandler så måste man ta bort OnClick i kontrollen. Annars så körs funktionen två gånger.
VB.NET hanterar det automatiskt men inte C#.
JosefMedlem sedan mars 20023 561 inlägg Varför ska man har OnClick i kontrollen? Det finns ju ingen fördel med det jämfört med att ha det code-behind.
PDahlenMedlem sedan apr. 2004778 inlägg Nej, det är bara två sätt att göra samma sak.
JosefMedlem sedan mars 20023 561 inlägg
PDahlen skrev:
Nej, det är bara två sätt att göra samma sak.
Jag vet, det var därför jag undrade vad du såg för fördelar med att ha det utanför code-behind:en.
PDahlenMedlem sedan apr. 2004778 inlägg Jag skrev bara att han måste ta bort OnClick i kontrollen om man lägger till en EventHandler. I koden ovan finns nämligen OnClick med.
GladhMedlem sedan maj 20012 812 inlägg Det är enklare att koda med OnClick i ASP:Controllern och sedan göra sin Eventfunktion som protected.
Det andra alternativet är att som ni säger att man lägger en eventlyssnare i codebehinde klassen och har sin Eventfunktion private.
Båda lösningar gör samma sak, det är en smaksak vilken man väljer.
- M
Gladh skrev:
Det är enklare att koda med OnClick i ASP:Controllern och sedan göra sin Eventfunktion som protected.
Det andra alternativet är att som ni säger att man lägger en eventlyssnare i codebehinde klassen och har sin Eventfunktion private.
Båda lösningar gör samma sak, det är en smaksak vilken man väljer.
- M
Jag håller nog inte med dig riktigt; om du använder OnClick i "html-koden" så har du väldigt begränsade möjligheter att ta bort den sedan. Dvs. om du inte längre vill lyssna på det klick-eventet. En annan fördel är att du kan (om du vill) ändra namn på saker i codebehind-classen utan att behöva ändra i "html-koden".
T.ex.
mitt_object.Click += blablabla
Det där lägger till en eventhandler
mitt_object.Click -= blablabla
Det där tar bort en eventhandler