[MSDNから転送]Asp.Net Webページの組み込みコード

3912 ワード

ASPにコードを追加する.NETページのデフォルトモデルでは、コード非表示クラスファイル(コード非表示ページ)を作成するか、runat=「server」プロパティを持つscriptブロック(単一ファイルページ)にページのコードを書きます.作成されたコードは、通常、ページ上のコントロールとインタラクティブになります.たとえば、コードからコントロールのText(または他の)プロパティを設定することで、ページに情報を表示できます.
もう1つは、埋め込みコードブロックを使用してページにコードを直接埋め込むことです.
埋め込みコードブロック
埋め込みコードブロックは、ページの表示中に実行されるサーバコードです.ブロック内のコードは、プログラミング文を実行し、現在のページクラスの関数を呼び出すことができます.
以下のコード例は、埋め込みコードブロックを含むASPを示す.NETページ、このコードブロックにループ結果が表示されます.
<%@ Page Language="C#" %> 
<html> <body>
<form id="form1" runat="server">
   <% for(int i = 0; i < 6; i++) %>
  <% { Response.Write("<br>" + i.ToString()); }%>
</form>
</body>
</html>

次のコード例では、span要素内の共通GetTime()関数の値を示す埋め込みコードブロックを示します.埋め込みコードブロックでは、構文<%=expression%>を使用して式を解析し、その値をブロックに返します.
<%@ Page Language="C#" %> 
<script runat=server>
protected String GetTime()
{ return DateTime.Now.ToString("t"); }
 </script>
<html>
<body>
  <form id="form1" runat="server"> Current server time is <% =GetTime()%>.
  </form>
</body>
</html>

埋め込みコードブロックは、ページのデフォルト言語で記述する必要があります.たとえば、ページの@ Page命令に属性language="VB"が含まれている場合、ページはrunat="server"と表示されているすべてのスクリプトブロックのコード、および<%>セパレータのすべての埋め込みコードをVisual Basicコンパイラを使用してコンパイルします.
埋め込みコードブロックの使用
ASP.NET Webページでは組み込みコードブロックがサポートされており、主に古いASPテクノロジーとの後方互換性を維持するために使用されています.一般的に、組み込みコードブロックを複雑なプログラミングロジックに使用するのは、ページ内のコードとタグが混在している場合、デバッグとメンテナンスが困難であるため、最善の方法ではありません.さらに、コードは、ページの提示中にのみ実行されるため、バックグラウンドコードまたはスクリプトブロックコードを実行するために適切なページ処理フェーズにコードを配置するよりも柔軟性が大幅に低下する.
埋め込みコードブロックの一部の用途は次のとおりです.
  • は、前述の例に示すように、コントロール要素またはタグ要素の値を関数が返す値に設定する.
  • は、計算をタグまたはコントロール属性に直接埋め込む.

  • もう1つの組み込みコードはデータバインド時です
     
     
    データバインド式の構文
    すべてのデータバインド式は、<%#と%>文字の間に含める必要があります.
    ASP.NETは、サーバコントロール属性とデータソース間のバインドを作成する階層型データバインドモデルをサポートします.ほとんどのサーバコントロール属性は、ページまたはサーバコントロールを含む直接名前付きコンテナに存在する任意の共通フィールドまたは属性にバインドできます.
    データバインド式は、EvalメソッドとBindメソッドを使用してコントロールにデータをバインドし、変更をデータベースにコミットします.Evalメソッドは、データフィールドの値をパラメータとし、文字列として返す静的(読み取り専用)メソッドです.Bindメソッドは、データバインドコントロールの値を取得し、変更をデータベースにコミットする読み取り/書き込み機能をサポートします.
    XPathメソッドとXPathSelectメソッド、およびXPathBinderクラスを使用してXmlDataSourceコントロールからXMLデータにバインドできます.詳細については、XmlDataSourceWebサーバコントロールを参照してください.

     
    集合:'runat="server">
    式:<%#expression%>
    方法結果:<%#GetBalance(custID)%>
     
    DataBinder.Eval()メソッド:
    Asp.net1.0使用法:
    <%# DataBinder.Eval(Container.DataItem,”fieldName”,”{0:c}”) %>
    DataBinder.Evalパラメータ1-データ項目の命名コンテナ2-データフィールド名3-フォーマット文字列
    Asp.net2.0使用法:<%#Eval("fieldName","{0:c}")%>
    Xmlデータソースのバインド<%#xpath("fieldName")%>
    <%# XPath("shipaddress/address1") %>
     
    注意:データバインディングの変数は、csコードファイルで必ずPublicで公有変数として宣言されている場合、バインディング式では使用できません.最後に必ずページでhisを呼び出します.DataBind()バインディングを有効にする