簡體   English   中英

asp.net:runat =“server”和服務器控件之間的區別

[英]asp.net: difference between runat=“server” and server controls

兩者之間的功能有什么不同

<asp:Button id="button1" Text="Click me" runat="server" OnClick="submitEvent" />

<input type="button" id="button1" runat="server" value="Click me" />

具有runat =“server”屬性的輸入是否具有其他或有限的屬性和方法?

謝謝!

第一個創建System.Web.UI.WebControls.Button而第二個創建System.Web.UI.HtmlControls.HtmlInputButton

兩者都是服務器控件,但WebControls命名空間中的控件通常比HtmlControls命名空間中的控件具有更多功能。 通常,他們在ViewState放置一些數據以跟蹤其狀態,並且它們具有服務器端回發事件。

HtmlControls命名空間中的每個控件都與HTML元素完全對應,而WebControls命名空間中的控件可能會有不同的呈現方式,具體取決於請求頁面的瀏覽器可以支持的內容。

<asp:Button runat="server".../>表示的<asp:Button runat="server".../>將轉換為具有豐富狀態模型和不同屬性和方法的Web服務器控件,這些屬性和方法在現實世界中具有更清晰的表示,如Button.Text =“點擊我“。

<input type="button" runat="server"..../>表示的<input type="button" runat="server"..../>將轉換為由HtmlInputButton表示的html服務器控件; 與有限的屬性,方法和事件。 大多數屬性類似於像Button.Value =“Click Me”這樣的html等價物。

請注意,標記頁面中的元素在使用之前已經過預處理/編譯,並將轉換為類表示,其中每個元素都由控件表示。 您可以從后面的代碼訪問由runat =“server”標記標識的服務器端控件,因為它們將具有正確的匹配服務器控件(web / html),其他靜態內容包括<input type="button.../>與出RUNAT =“服務器”將被表示為一個LiteralControl標簽。

前一行是ASP.NET,后者是簡單的XHTML。

前者在服務器端進行解析和解釋,然后生成HTML代碼,這幾乎與您的第二個示例相對應。 ASP.NET按鈕實際上只不過是HTML輸入按鈕功能的輕量級包裝,應該在需要處理服務器端Click事件的任何地方使用(或者在一般情況下任何事件),通常是這樣的因為你讓ASP.NET在你的頁面上抽象出一個按鈕的概念。

兩個控件的功能相同,區別在於第一個是.net控件,第二個是html控件,可以通過使用來實現servercontrol

RUNAT = “服務器”。

第一個是第二個有豐富的evants和metods ....

沒有與此類控件關聯的服務器事件,但您可以在代碼隱藏中使用它來更改其屬性。

你的第二個選擇甚至可能不起作用。 runat =“server”將直接呈現給HTML輸出,它將沒有任何功能,只會破壞HTML驗證。

input是一個HTML元素,只有HTML屬性,絕對沒有任何方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM