サーバーコントロールはサーバーによって理解されているタグです。
クラシックASPでの制限事項
以下のリストは、前の章からコピーされました:
<html>
<body bgcolor="yellow">
<center>
<h2>Hello w3ii!</h2>
<p> <%Response.Write(now())%> </p>
</center>
</body>
</html>
上記のコードは、クラシックASPでの限界を示しています。コードブロックを使用すると、出力を表示する場所に設置する必要があります。
クラシックASPで、HTML自体から実行可能コードを分離することは不可能です。 これは、ページが読みにくく、かつ維持が困難になります。
ASP.NET - サーバーコントロール
ASP.NETは、解決した"spaghetti-code"サーバーコントロールして上述した問題を。
サーバーコントロールはサーバーによって理解されているタグです。
サーバーコントロールの3種類があります。
- HTMLサーバーコントロール - 伝統的なHTMLタグ
- Webサーバーコントロール - 新しいASP.NETタグ
- 検証サーバーコントロール - 入力の検証のために
ASP.NET - HTMLサーバーコントロール
HTMLサーバーコントロールはサーバーが理解HTMLタグです。
ASP.NETファイル内のHTML要素は、デフォルトでは、テキストとして扱われます。 これらの要素は、プログラム可能にするために、HTML要素ににrunat =「server」属性を追加します。 この属性は、要素がサーバーコントロールとして扱われるべきであることを示しています。 id属性は、サーバーコントロールを識別するために追加されます。 id参照は、実行時にサーバーコントロールを操作するために使用することができます。
Note:すべてのHTMLサーバーコントロールは、範囲内でなければなりません<form>とタグrunat="server"属性。 runat="server"属性は、フォームがサーバー上で処理する必要があることを示しています。 また、囲まれたコントロールはサーバースクリプトによってアクセスすることができることを示しています。
次の例では、.aspxのファイルにHtmlAnchorサーバーコントロールを宣言します。 その後、我々は操作HRefイベントハンドラでHtmlAnchorコントロールの属性を(an event handler is a subroutine that executes code for a given event) 。 Page_Loadイベントは、ASP.NETが理解多くのイベントの一つであります:
<script runat="server">
Sub Page_Load
link1.HRef="http://www.w3ii.com"
End Sub
</script>
<html>
<body>
<form runat="server">
<a id="link1" runat="server">Visit w3ii!</a>
</form>
</body>
</html>
実行可能コード自体は、HTMLの外に移動されました。
ASP.NET - Webサーバーコントロール
Webサーバーコントロールは、サーバーが理解特殊なASP.NETタグです。
HTMLサーバーコントロールと同様に、Webサーバーコントロールは、サーバー上に作成され、彼らが動作するようにrunat =「server」属性を必要としています。 しかし、Webサーバーコントロールは、必ずしも既存のHTML要素にマッピングしないと、彼らはより複雑な要素を表すことができます。
Webサーバーコントロールを作成するための構文は次のとおりです。
<asp:control_name id="some_id" runat="server" />
次の例では、.aspxのファイル内のButtonサーバーコントロールを宣言します。 その後、我々は、ボタン上のテキストを変更するClickイベントのイベントハンドラを作成します。
<script runat="server">
Sub submit(Source As Object, e As EventArgs)
button1.Text="You clicked me!"
End Sub
</script>
<html>
<body>
<form runat="server">
<asp:Button id="button1" Text="Click me!"
runat="server" OnClick="submit"/>
</form>
</body>
</html>
ASP.NET - 検証サーバーコントロール
検証サーバーコントロールは、ユーザー入力を検証するために使用されています。 ユーザ入力が検証に合格しない場合は、ユーザにエラーメッセージを表示します。
各検証コントロールは、(特定の値または値の範囲に対して検証など)の検証の具体的な種類を行います。
ボタン、のImageButton、またはLinkButtonコントロールがクリックされたときにデフォルトでは、ページの検証が行われます。 ボタンコントロールをfalseにCausesValidationプロパティを設定することにより、クリックされたときは、検証を防ぐことができます。
検証サーバーコントロールを作成するための構文は次のとおりです。
<asp:control_name id="some_id" runat="server" />
次の例では、1つのTextBoxコントロール、1つのButtonコントロール、および.aspxのファイルの1つのRangeValidatorコントロールを宣言します。 検証が失敗した場合、テキストは"The value must be from 1 to 100!" RangeValidatorコントロールに表示されます。
例
<html>
<body>
<form runat="server">
<p>Enter a number from 1 to 100:
<asp:TextBox id="tbox1" runat="server" />
<br /><br />
<asp:Button Text="Submit" runat="server" />
</p>
<p>
<asp:RangeValidator
ControlToValidate="tbox1"
MinimumValue="1"
MaximumValue="100"
Type="Integer"
Text="The value must be from 1 to 100!"
runat="server" />
</p>
</form>
</body>
</html>
»例を表示