Domanda

Quando non è necessario utilizzarlo runat="server" in ASP.NET?

MODIFICARE:Grazie per tutte le risposte, ma ci stavo davvero pensando runat="server" all'interno di un <asp: etichetta.

È stato utile?

Soluzione

Usa il runat=server attributo quando usi controlli ASP.NET e/o hai bisogno dell'accesso a livello di codice a tali controlli nel code-behind.

I controlli HTML non richiedono questo attributo.È utile se hai qualche elemento HTML come <span> <div>, O <table> quando vuoi avere la possibilità di accedervi in ​​code-behind.

<asp:Label runat="server" id="foo" />
<div runat="server" id="bar />
...
foo.Text = "Hello Label";
foo.Attributes["class"] = "baz";

Altri suggerimenti

Devi usare runat="server" Su qualsiasi controllo che desideri essere analizzato come controllo del server.

Qualsiasi elemento con runat="server" Verrà analizzato in un controllo del server nella Herarchia di pagina. Qualsiasi altra cosa verrà gestita come testo semplice e inserita LiteralControl Controlli nella gerarchia di pagina.

L'eccezione sono elementi che non sono elementi reali, ma tag speciali all'interno di un altro tag server, ad esempio ContentTemplate Tag. Non hanno bisogno di un runat="server" Perché il controllo contenente li analizzerà.

Quando non si desidera che il lato server ASP.NET renda una variabile lato server contro di noi.

In generale, non lo usi quando non è necessario manipolare l'elemento DOM sul lato server EG che viene utilizzato solo per scopi di layout.

Senza runat = "server" non ci sarebbe altro modo per effettuare i controlli secondari del server HTML. Sembra una cosa strana, perché non puoi fare runat = "client".

Quindi, in sintesi, non puoi lasciarlo su alcun controllo ASP .NET di sempre ed è stato probabilmente il modo Easiet e il modo più pulito per trovare tutti i controlli lato server per gli sviluppatori che hanno creato i moduli Web ASP .net.

fonte: http://mikeschinkel.com/blog/whyrunatserverforaspnetpart2/

Tag runat = "server" indica che il codice contenuto all'interno del blocco di script verrà eseguito sul server (e non sul client). Durante l'esecuzione, ASP.NET creerà oggetti sul lato server che contengono questo codice e un'istanza della classe di pagina per contenere i controlli definiti all'interno della pagina come istanze del loro tipo fornito (System.Web.ui.WebControls.TextBox, Per esempio). Questo oggetto lato server verrà invocato su richiesta dell'utente e eseguirà il codice in risposta agli eventi.

Crea controllo in runtime

Ho bisogno di un'etichetta in fase di esecuzione che il tempo non è necessario runat = "server" non è richiesto

Esempio

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
   {
    Label  lblNew = new Label();
    lblNew.ID ="lblnew";
    lblNew.Text ="Test";
    }
}

Questo codice crea l'etichetta in runtime all'evento di caricamento della pagina

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top