2012-04-03 2 views
0

Ich muss wissen, wie die CSS-Klasse auf einem Tag auf Seite laden ändern .. in PHP war dies viel einfacher alles, was ich tun musste ist schreiben <tagNAme class="<?php echo "className"; ?>"> ...Wie HTML-Klasse-Attribut auf einem Tag beim Laden von ASP.NET ändern C#

konnte ich pHP-Code blockes mit in Tags .. aber in ASP .NET dies scheint nicht schreiben

zu arbeiten habe ich versucht, <% tagElementId.attribute.add("class","cssName"); %> nach dem Tag wollte ich die CSS ändern in ASPX-Datei .... aber hat nicht funktioniert ..

Mein scanario ist ich muss Passwort Textfeld und auf Login-Taste klicken klicken .. Wenn das Passwort falsch ist Passwort Textfeld Sh hätte eine Klasse namens "error", sonst eine CSS-Klasse namens "userinput"

Wie mache ich das?

EDIT

<form id="loginPanel" runat="server"> 
     <ul> 
      <li> 
       <h3> 
        Log on</h3> 
      </li> 
      <li> 
       <label for="userId"> 
        User ID :</label> 

       <asp:TextBox ID="userId" name="userId" class="loginTextInput" runat="server"></asp:TextBox> 

      </li> 
      <li> 
       <label for="password"> 
        Password :</label> 

       <asp:TextBox ID="password" name="password" class="loginTextInput" 
        runat="server" ontextchanged="password_TextChanged"></asp:TextBox> 

      </li> 
      <li> 
       <asp:Button ID="logInButton" runat="server" Text="Log on" OnClick="logInButton_Click" /> 
       <li class="forgotUserText">Forgot <a href="#" class="forgotUser">User ID </a>or <a 
        href="#" class="forgotUser">Password?</a> </li> 

     </ul> 
     </form> 

`

Antwort

2

MyPage.aspx

<asp:Label ID="myLabel" Text="Some text in span" runat="server" /> 

MyPage.aspx. cs

protected void Page_Load(object sender, EventArgs e) 
{ 
    myLabel.CssClass = "someNewClass"; 
} 

Ich möchte noch eine Sache hervorheben - versuchen Sie nicht aspx (HTML) Seiten mit der Logik wie in Ihrem Beispiel zu mischen. Es ist eine schlechte Angewohnheit. In PHP hast du keine Alternativen, aber du versuchst jetzt in asp.net zu arbeiten, also musst du deine alten Gewohnheiten loswerden und komplett anders denken.

EDIT basierend auf Ihren Kommentar zu Curt Antwort:

Wenn Sie etwas Klasse der vorhandenen hinzufügen möchten, können Sie es so etwas tun:

myLabel.CssClass += " someNewClass"; 

EDIT basierend auf den letzten Kommentar (und der letzte, denn das beginnt eine ganz andere Frage zu sein! Erstellen Sie eine neue Frage und ich schlage vor, einige Recherchen zu machen, damit wir nicht alle Grundlagen erklären müssen)

Sie müssen nur Attribut runat = "server" für das Element, das Sie ändern möchten, von Ihrem Code-Behind festlegen und sicherstellen, dass Sie auch seine ID festlegen. Dann können Sie etwas tun:

Label myDynamicNewLabel = new Label(); 
myDynamicNewLabel.Text = "Let's say this is an error message"; 

myParentElement.Controls.Add(myDynamicNewLabel); 
+0

beizubehalten Hallo vielen Dank, ok, wenn ich nicht Inline-Codierung verwende, wie füge ich bestimmte HTML-Elemente an einem bestimmten Ort zum Beispiel in ein bestimmtes Div-Tag dynamisch beim Laden der Seite? – Dilan87

+0

@ Dilan87, froh, dass es geholfen hat. Wenn Sie jedoch mehr Probleme haben, die sich nicht auf dieses beziehen, sollten Sie eine neue Frage erstellen, wie ich es bei meiner letzten Bearbeitung vorgeschlagen habe. – walther

2

Dies kann in Ihrem Code-Behind-Server-Ereignisse geschehen:

if (//password is wrong){ 
    txtPassword.CssClass += " error"; 
} 
+0

Hallo ich habe versucht, aber didnt's Arbeit insted es verlor die CSS-Klasse es bereits hat bitte überprüfen Sie meine Frage für die Aspx-Code – Dilan87

+0

@ Dilan87 Ich habe den Code so geändert, dass es diese Klasse sowie die aktuellen Klassen – Curt

0

Was wollen wissen, wie HTML-Elemente zu einem bestimmten Ort wie einem bestimmten DIV Tag hinzuzufügen, auch wenn Sie die ID des DIV-Tag haben, dann können Sie hinzufügen die neuen HTML-Elemente als untergeordnete Elemente für dieses DIV-Tag.

Überprüfen Sie this Post bezüglich der Details, wie dies zu erreichen ist.

Verwandte Themen