2 Stimmen

Wie bekomme ich javascript auf ein Steuerelement, das zunächst in ASP.NET ausgeblendet werden könnte?

Ich habe ein Steuerelement, das auf einer Seite zunächst angezeigt wird, aber auf einer anderen Seite zunächst ausgeblendet ist.

Auf der Seite, auf der das Steuerelement zunächst angezeigt wird, funktioniert das Javascript im Steuerelement einwandfrei, aber auf der Seite, auf der das Steuerelement zunächst ausgeblendet wird, funktioniert das Javascript nicht.

Ich habe am Ende die Registrierung der Javascript in den Code hinter mit:

this.Page.ClientScript.RegisterClientScriptBlock(...);

Es funktioniert gut, aber es wird hässlich mit großen Javascript-Blöcken. Und wenn ich es ändern möchte, muss ich die Lösung neu erstellen, was ich lieber nicht tun möchte.

Gibt es eine andere Möglichkeit, Javascript mit Markup zu registrieren, wenn es nicht an den Browser gesendet wird, wenn die Seite geladen wird? Ich versuche, den Netzwerkverkehr gering zu halten, indem ich nur das an den Browser sende, was ich brauche, wenn die Seite geladen wird.

danke,

Mark

2voto

TStamper Punkte 29478

Das Problem ist nicht die Schaltfläche unsichtbar zu machen, sondern eine unsichtbare Schaltfläche zu haben, auf die man von Javascript aus klicken kann, und die Schaltfläche zu haben, rufen Sie es ist Event-Handler.

ex:

   <asp:button id="button1" runat="server" style="display:none">

ist etwas, das Sie verwenden sollten, oder Sie können stattdessen eine CSS-Klasse mit display:none einrichten und diese dann Ihrem Steuerelement zuweisen.

1voto

Jimmie R. Houts Punkte 7358

Ich nehme an, Sie erhalten das Steuerelement mit document.getElementById, wenn das der Fall ist, können Sie überprüfen, ob es null ist, bevor Sie es verwenden:

var ctrl = document.getElementById("someID");
if (ctrl) {
    do something here...
}

0voto

deckerdev Punkte 2570

Wenn Ihr Steuerelement ausgeblendet wird, indem seine serverseitige Eigenschaft "Visible" auf false gesetzt wird, kann der Browser die Js nicht an etwas anhängen, da ASP.NET das Steuerelement nicht rendert. Sie könnten versuchen, die CSS-Eigenschaft "display" auf "none" zu setzen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X