Frage

Wenn Sie eine Asp.Net Seite Codierung, Sie in der Regel ein runat-Attribut in der aspx hinzufügen:

<form id="form1" runat="server">

Ist es möglich, hinter dem Code zu sagen, wenn der Benutzer nicht das heißt, sie nur tat dies getan hat:

<form id="form1">

Hier hat die Form, die id „form1“, aber in meinem Fall habe ich nicht wissen. Code hinter wie das ist, was ich suche:

if(Page.HasForm)
{
}
War es hilfreich?

Lösung

Sie können immer nur mit „runat = Server“ auf sie pro ASPX-Seite ein Formular-Tag haben. Alles, was Sie tun müssen, ist zu prüfen, ob Page.Form null ist oder nicht. Wenn es null ist, dann gibt es keine Form, die runat Server markiert wurde.

if (Page.Form != null)
{

}

Es ist das runat = „server“ Teil, der die ASPX-Seite Prozess ein Element macht und ein entsprechendes Objekt auf dem Server erstellen. Wenn eine Komponente nicht auf dem Server ausgeführt wird, dann ist es nicht auf die Seite des Steuerungshierarchie hinzugefügt.

Andere Tipps

var v = this.Form.TagName; // ruft den Namen des Formulars, das als Runat maked wird.

Natürlich, wenn sie nicht maked als Runat dann hinter dem Code sowieso nicht laufen wird ...

Wenn Sie Code in C # oder Visual Basic in der Codepage, haben Sie keinen Zugriff auf das Objekt haben, das die runat = Serveroption Satz nicht hat.

Sie können ganz einfach alle Steuerelemente zugreifen von einer Seite der Me.Controls Seite oder etwas Ähnliches verwenden (ich weiß nicht den genauen Code, aber es liegt in der Nähe dieses) und überprüfen Sie die Art der Kontrolle der Form zu erhalten .

Warum müssen Sie das wissen? Wenn eine Seite kein runat = Server Form hat, kann es nicht wirklich als Server-Seite verwendet werden.

Sie würden der Lage sein, das Formular aus dem Code-Behind zuzugreifen:

Response.Write(form1.Name);

Ohne die runat = "server", dann würden Sie nur einen Compiler-Fehler erhalten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top