asp.net:にrunat =「サーバー」とサーバーコントロールの違い
-
22-08-2019 - |
質問
タグ間の機能の違いは何ですか
<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
名前空間のコントロールがページを要求しているブラウザがサポートできるものに応じて、異なるレンダリングすることができる一方で、 WebControls
名前空間内の各コントロールは、HTML要素に正確に対応します。
他のヒント
<asp:Button runat="server".../>
によって表されるボタンはButton.Text =「私をクリックしてください」のような現実の世界では、より明確な表現を持つリッチ状態モデルと異なるプロパティとメソッドを持つWebサーバーコントロールに変換されます。
<input type="button" runat="server"..../>
で表されるボタンは、HtmlInputButtonで表されるHTMLサーバーコントロールに変換されます。プロパティ、メソッド、イベントを制限しています。プロパティのほとんどは=「私をクリックして」Button.ValueようなHTML同等物に似ています。
マークアップページ内の要素は、前処理された/使用される前にコンパイルされ、すべての要素を制御することによって表されるクラスの表現に変換されることに留意されたいです。あなたはにrunat = "サーバーうちに、彼らは正しいマッチングサーバコントロール(ウェブ/ HTML)を持つことになりますので、背後にあるコードからにrunat =「サーバー」タグで識別され、サーバー側のコントロール、<input type="button.../>
タグを含む他の静的なコンテンツにアクセスすることができます「LiteralControlとして表現されます。
前者の行はASP.NET、後者シンプルXHTMLである。
前者はかなりのあなたの第二の例に対応する、HTMLコードが生成された後、解析され、サーバ側で解釈されます。 ASP.NETボタン番目のHTML入力ボタンの機能の上に実際に光ラッパーより少しで、あなたが(任意のイベントや一般的なケースでは)サーバ側でClick
イベントを処理するために必要な場所で使用する必要があり、通常の方法でありますあなたはASP.NETの抽象的にあなたのために自分のページ上のボタンのアイデアをせているので、どこへ行くか。
両方のコントロールの機能は、最初のものは、.NETコントロールと第二ものであること差と同じであるが使用してservercontrolにすることができるHTMLコントロールである
にrunat = "サーバー" ます。
と最初のものは、第1 THN evantsとmetodsに富んでいる....
があり、そのようなコントロールに関連付けられたサーバーのイベントはありませんが、あなたはそれのプロパティを変更するには分離コードで使用することができます。
あなたの2番目のオプションは、おそらく動作しません。 runat =「サーバー」それは何の機能もありませんし、HTMLのみの検証を中断しますHTML出力に直接レンダリングされます。
の入力は、HTMLの特性を有するHTML要素、および任意の種類の間違いのない方法である。