Asp.net-client-side

提供:Dev Guides
移動先:案内検索

ASP.NET-クライアント側

ASP.NETクライアント側のコーディングには2つの側面があります。

  • クライアント側スクリプト:ブラウザで実行され、ページの実行を高速化します。 たとえば、無効なデータをキャッチし、サーバーに往復せずにユーザーに警告することができるクライアント側のデータ検証。
  • クライアント側のソースコード:ASP.NETページがこれを生成します。 たとえば、ASP.NETページのHTMLソースコードには、ビューステートなどの情報を保持したり、ページを機能させるために他のジョブを実行したりする、多くの非表示フィールドとJavaScriptコードの自動注入ブロックが含まれます。

クライアント側スクリプト

すべてのASP.NETサーバーコントロールでは、JavaScriptまたはVBScriptを使用して記述されたクライアント側コードを呼び出すことができます。 一部のASP.NETサーバーコントロールは、クライアント側のスクリプトを使用して、サーバーにポストバックせずにユーザーに応答を提供します。 たとえば、検証コントロール。

これらのスクリプトとは別に、ButtonコントロールにはOnClientClickプロパティがあり、ボタンがクリックされたときにクライアント側のスクリプトを実行できます。

従来のHTMLコントロールとサーバーHTMLコントロールには、発生時にスクリプトを実行できる次のイベントがあります。

Event Description
onblur When the control loses focus
onfocus When the control receives focus
onclick When the control is clicked
onchange When the value of the control changes
onkeydown When the user presses a key
onkeypress When the user presses an alphanumeric key
onkeyup When the user releases a key
onmouseover When the user moves the mouse pointer over the control
onserverclick It raises the ServerClick event of the control, when the control is clicked

クライアント側のソースコード

ASP.NETページは通常、次の2つのファイルで記述されることを既に説明しました。

  • コンテンツファイルまたはマークアップファイル(.aspx)
  • 分離コードファイル

コンテンツファイルには、ページの構造を形成するHTMLまたはASP.NETコントロールタグとリテラルが含まれています。 コードビハインドファイルにはクラス定義が含まれています。 実行時に、コンテンツファイルが解析され、ページクラスに変換されます。

このクラスは、コードファイルのクラス定義、およびシステム生成コードとともに、すべてのポストされたデータを処理し、応答を生成し、クライアントに送信する実行可能コード(アセンブリ)を作成します。

簡単なページを考えてみましょう。

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs"
   Inherits="clientside._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

   <head runat="server">
      <title>
         Untitled Page
      </title>
   </head>

   <body>
      <form id="form1" runat="server">

         <div>
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Click"/>
         </div>

         <hr/>

         <h3> <asp:Label ID="Msg" runat="server" Text=""> </asp:Label> </h3>
      </form>
   </body>

</html>

このページをブラウザーで実行すると、ASP.Netランタイムによってブラウザーに送信されたHTMLページが[ソースの表示]オプションに表示されます。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

   <head>
      <title>
         Untitled Page
      </title>
   </head>

   <body>
      <form name="form1" method="post" action="Default.aspx" id="form1">

         <div>
            <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"
               value="/wEPDwUKMTU5MTA2ODYwOWRk31NudGDgvhhA7joJum9Qn5RxU2M="/>
         </div>

         <div>
            <input type="hidden" name="__EVENTVALIDATION"  id="__EVENTVALIDATION"
               value="/wEWAwKpjZj0DALs0bLrBgKM54rGBhHsyM61rraxE+KnBTCS8cd1QDJ/"/>
         </div>

         <div>
            <input name="TextBox1" type="text" id="TextBox1"/>
            <input type="submit" name="Button1" value="Click" id="Button1"/>
         </div>

         <hr/>
         <h3><span id="Msg"></span></h3>

      </form>
   </body>
</html>

コードを適切に処理すると、最初の2つの<div>タグに、ビューステートと検証情報を格納する非表示フィールドが含まれていることがわかります。