Avatar billede dat01x02 Nybegynder
17. september 2006 - 13:01 Der er 6 kommentarer og
1 løsning

Cast exception i UI control?

Jeg har lidt problemer med at sætte en tekst på en label i et loginview. Jeg vil når brugeren er logget ind sætte teksten på en label til brugerens navn som hentes i DB. Men problemet er at få fat i den label på UI som skal vise navnet. Når jeg forsøger at hente den label med linien:
Label l = (Label)LoginView1.FindControl("labelName");
får jeg følgende Cast exception:

System.InvalidCastException: Unable to cast object of type 'System.Web.UI.HtmlControls.HtmlGenericControl' to type 'System.Web.UI.WebControls.Label'.

Her er hele koden:
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" %>
<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Profile.FulName != String.Empty)
        {
            Label l = (Label)LoginView1.FindControl("labelName");
            l.Text  = Profile.FulName;
        }
    }
</script>

<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="ContentPlaceHolder1">
    <asp:LoginView ID="LoginView1" runat="server">
        <LoggedInTemplate>
            Welcome <label id="labelName" runat="server"></label>
        </LoggedInTemplate>
        <AnonymousTemplate>
            <asp:Login ID="Login1" runat="server" DestinationPageUrl="Login.aspx">
            </asp:Login>
        </AnonymousTemplate>
    </asp:LoginView>
</asp:Content>
Avatar billede snepnet Nybegynder
17. september 2006 - 13:12 #1
Der er en kontrol der viser brugerens navn ... Du kan bare sætte den ind istedet.
Den hedder LogInName.
Mvh
Avatar billede dat01x02 Nybegynder
17. september 2006 - 13:19 #2
Ja, det ved jeg, men det er ikke problemet, problemet er at få fat i en label og sætte en tekst herpå.
Avatar billede dr_chaos Nybegynder
17. september 2006 - 13:19 #3
label skal være:
<asp:label id="labelName" runat="server"></asp:label>
Avatar billede dr_chaos Nybegynder
17. september 2006 - 13:21 #4
så kan du bruge din findcontrol
Avatar billede dat01x02 Nybegynder
17. september 2006 - 13:25 #5
dr chaos - tak for hjælpen så virker det. :-) Post lige et svar så jeg kan give point.
Avatar billede driis Nybegynder
17. september 2006 - 13:27 #6
Fejlen tyder på at LoginView1.FindControl("labelName") finder en kontrol, men den er ikke af typen Label, men af typen HtmlGenericControl. Hvorfor ved jeg ikke - måske det kan have noget at gøre med måden templates håndteres i et LoginView,
Avatar billede dr_chaos Nybegynder
17. september 2006 - 13:30 #7
kommer her :)
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