Avatar billede haunted Nybegynder
30. december 2005 - 13:17 Der er 2 kommentarer og
1 løsning

Parameter fra ASPX side til ASPX.CS

Hej.

Jeg prøver at lave en simpel login side med et brugernavn og et password der skal indtastes(se koden nederst). Problemet er at jeg ikke ved hvordan jeg skal kunne få fat i teksten fra tekstboksene i min cs fil?

Fejlen jeg får når jeg prøver at indtaste det nedenstående i cs-filen er:

"The name 'UserName' does not exsist in the current context"

Er der nogen der ved hvad jeg skal gøre??


------- ASPX fil --------

<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="Login" Title="Untitled Page" EnableSessionState="True" %>

...

<form method=get name="formname">

<div class="contents">
    <asp:LoginView ID="LoginView1" runat="server">
        <AnonymousTemplate>
            <asp:Login ID="Login1" runat="server">
                <LayoutTemplate>
                    <table border="0" cellpadding="4" cellspacing="0" style="border-collapse: collapse">
                        <tr>
                            <td>
                                <table border="0" cellpadding="0">
                                    <tr><td align="center" colspan="2">Log In</td></tr>
                                    <tr>
                                        <td align="right"><asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">User Name:</asp:Label></td>
                                        <td>
                                                <asp:TextBox ID="UserName" runat="server" Font-Size="0.8em"></asp:TextBox>
                                            <asp:RequiredFieldValidator ID="UserNameRequired" runat="server" ControlToValidate="UserName" ErrorMessage="User Name is required." ToolTip="User Name is required." ValidationGroup="ctl00$Login1">*</asp:RequiredFieldValidator>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td align="right"><asp:Label ID="PasswordLabel" runat="server" AssociatedControlID="Password">Password:</asp:Label></td>
                                        <td>
                                            <asp:TextBox ID="Password" runat="server" TextMode="Password"></asp:TextBox>
                                            <asp:RequiredFieldValidator ID="PasswordRequired" runat="server" ControlToValidate="Password" ErrorMessage="Password is required." ToolTip="Password is required." ValidationGroup="ctl00$Login1">*</asp:RequiredFieldValidator>
                                        </td>
                                    </tr>
                                    <tr><td align="center" colspan="2" style="color: red"><asp:Literal ID="FailureText" runat="server" EnableViewState="False"></asp:Literal></td></tr>
                                    <tr>
                                        <td align="right" colspan="2"><asp:Button ID="LoginButton" runat="server" CommandName="Login" OnClick="LoginButton_Click" Text="Log In" ValidationGroup="ctl00$Login1" /></td>
                                    </tr>
                                </table>
                            </td>
                        </tr>
                    </table>
                </LayoutTemplate>
            </asp:Login>
        </AnonymousTemplate>
       
        <LoggedInTemplate>
            You are logged in.
        </LoggedInTemplate>
    </asp:LoginView>
</div>

</form>


------- CS fil --------

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class Login : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void LoginButton_Click(object sender, EventArgs e)
    {
        String password = Password.Text;
        String userName = UserName.Text;
    }
}
Avatar billede arne_v Ekspert
30. december 2005 - 16:15 #1
Mangler du ikke

protected TextBox UserName;
protected TextBox Password;

i din code behind klasse ?
Avatar billede haunted Nybegynder
30. december 2005 - 17:29 #2
For at forklare det lidt simplere har jeg lavet et lille ekspempel som virker:

I nedenstående eksempel har jeg en tekstboks, en button og en label.

Disse kan godt fungere mellem ASPX og cs filen uden jeg får compileringsfejl.

Jeg kan trykke på button og den ryger ned i Button1_Click som smider teksten i teksboksen over i label'en.

Det er adgangen til tekstboksen jeg ikke kan få i det forrige eksempel. Det har måske noget at gøre med LoginView da den bruger forskellige templates men jeg ved ikke hvordan jeg så får fat i dem fra cs filen??

------- ASPX fil --------

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
        <br />
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label></div>
    </form>
</body>
</html>

------- CS fil --------

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        Label1.Text = TextBox1.Text;
    }
}
Avatar billede haunted Nybegynder
30. december 2005 - 19:18 #3
Jeg har fundet ud af det...

Man erklære følgende for at det virker:

Button button = (Button) sender;

// Get userName and password from the sender object
String userName = ((TextBox)(button.FindControl("UserName"))).Text;
String password = ((TextBox)(button.FindControl("Password"))).Text;
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester