2010-02-24 15 views
6

Mi piacerebbe sapere qual è esattamente la differenza tra il controllo HtmlControllo Html e controllo web asp.net

e il controllo web asp.net. perché abbiamo bisogno di questi due tipi di controlli?

ho messo uno html testo di input, pulsante HTML e casella di testo asp.net E ASP.NET pulsante sulla mia pagina web

<input id="Text1" type="text" /> 

    <input id="Button2" type="button" value="button" /> 







    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 

    <asp:Button ID="Button1" runat="server" Text="Button" /> 

quando prendo vista origine, entrambi sono resi in modo simile

<input id="Text1" type="text" /> 

    <input id="Button2" type="button" value="button" /> 




    <input name="TextBox1" type="text" id="TextBox1" /> 

    <input type="submit" name="Button1" value="Button" id="Button1" /> 

qual è il vantaggio del controllo web sul controllo html.

ho avuto alcuni collegamenti in internet, ma non è chiaro che cosa esattamente

sono utilizzati per.

http://www.extremeexperts.com/Net/FAQ/DiffBetweenServerandHTMLControls.aspx.

Qualcuno potrebbe spiegare la differenza tra questi due controlli.

risposta

1

In breve i controlli HTML non mantengono il loro stato durante i postback. D'altra parte il controllo ASP.Net ti dà il lusso di avere il loro stato salvato mentre diversi Postback automaticamente. Diverso mentre si utilizza il controllo ASP.Net invece di elemento HTML è:

<input type="hidden" name="__VIEWSTATE" value="dDwtNTI0ODU5MDE1Ozs+.................." />

Questo campo nascosto è auto generato da ASP.Net e contiene tutto quello che controlla lo stato di attributo value.

0

I controlli server hanno un attributo runat = "server" che consente di fornire la logica lato server per questi controlli nel code-behind. Puoi anche aggiungere questo attributo ai controlli HTML esistenti per ottenere questa stessa funzionalità.

0

I controlli HTML sono controlli semplici che corrispondono direttamente agli elementi HTML.

I controlli Web ASP.NET astraggono gli elementi HTML e in genere forniscono un maggiore controllo sullo stile (sebbene alcuni lo chiamerebbero una cosa negativa).

5

Innanzitutto, se si trascina un controllo Html dalla casella degli strumenti sulla superficie di progettazione come nell'esempio, il tag creato non include runat = "server". Ciò significa che è un tag HTML nativo e non un controllo .NET. Un tag HTML nativo senza runat = "server" non ha funzionalità sul lato server. Pertanto, non è possibile impostare il valore del tag di input "Text1" nel code-behind.

In secondo luogo, una volta aggiunto runat = "server" al tag di input Html, lo si converte da un tag Html nativo in un HtmlControl che deriva da System.Web.UI.Control. Ora la domanda potrebbe trasformarsi in differenze tra qualcosa che deriva da System.Web.UI.Control e System.Web.UI.WebControl. Tuttavia, per affrontare in modo specifico alla tua domanda, confrontiamo un tipo standard input = "text" di controllo per il controllo TextBox:

  1. controllo TextBox può essere l'accesso dal code-behind in cui un controllo di input non può (non facilmente), che significa anche che puoi collegare eventi lato server per un controllo TextBox mentre non puoi con un controllo Html standard.
  2. Un controllo TextBox salva automaticamente il suo valore utilizzando ViewState.
  3. Un controllo TextBox può essere scuoiato utilizzando un tema e un file .skin mentre un controllo Html nativo non può.
  4. Un TextBox può eseguire il rendering sia come tipo di input = controllo "testo" o area di testo in base alla relativa proprietà TextMode.
  5. Un controllo TextBox può partecipare alla convalida mediante i validatori.
  6. Ultimo ma non meno importante, il controllo TextBox può utilizzare gli adattatori di controllo per eseguire il rendering in modo diverso nei vari browser, se necessario. Vedi http://msdn.microsoft.com/en-us/magazine/cc163543.aspx.

Ora, tutto ciò detto, se non è necessaria alcuna delle funzionalità di WebControl, quindi l'utilizzo di un controllo Html nativo è sostanzialmente più snello. Nel tuo esempio, hai semplicemente trascinato due controlli vuoti sulla superficie del tuo progetto. Se è tutto ciò di cui hai bisogno, utilizzare il controllo .NET sarebbe eccessivo. Tuttavia, quando inizi ad aggiungere il completamento automatico e gli eventi lato server e simili, l'intero contenuto, Javascript e tutti, di ciò che arriva al browser è molto più grande.

Problemi correlati