FC2ブログ

記事一覧

インライン式の使用方法 -aspxでのVBコードの記述方法- | asp.net


今回は Webフォーム ( *.aspx  / *.ascx )側で VB または C# のソースを記述することができるインライン式の使用方法について詳しくまとめてみました。
インライン式を用いると画面側でコードの分岐ができたり、バインドしたデータを表示したり、文字を表示したりでき、非常に便利で強力な機能となっていますので忘れずに覚え書きしようと思います。


前提条件
・Windows 7 Professional 以降 / Windows Server 2008 R2 以降
・Visual Studio 2010 Professional 以降
・VB.NET
・.Net Framework 4.0 以降



1.インライン式の種類

以下に全てのインライン式を表にまとめてみました。
詳細な説明は後述します。

インライン式機能名補足
<%-- ... --%> コメントブロック コメントを表示します。
<% ... %> 埋め込みコードブロック If文などの条件式でタグの表示を切り替えることができる
<%= ... %> 表示式 関数やプロパティを埋め込むことにより任意の文字列を表示できる
<%# ... %> データバインディング式 バインドされたデータを表示します。
<%@ ... %> ディレクティブ式 ページの先頭に必ず必要な設定です。
<%$ ... %> 式ビルダー 設定情報を表示します。


参考URL
https://support.microsoft.com/ja-jp/help/976112/introduction-to-asp-net-inline-expressions-in-the-net-framework



2.詳細説明

以下に全てのインライン式の詳細な説明をします。

(1)コメントブロックは aspx ページにおいてコメントとして記載が可能です。ただし、クライアントのブラウザにはソースとして表示されませんので、ソースとして確認がしたい場合は、html標準の <!-- ... --> で囲む必要があります。また、埋め込みコードブロックを応用して <% ' で開始するとVBコードのコメントとしても利用することができます。

(2)埋め込みコードブロックを利用すると、If文などを記述可能ですので、タグごと分岐することができ、PlaceHolder の代替機能として表示非表示を切り替えることができます。また、条件付きコンパイル定数を使用して、デバッグやReleaseで実行した際に動作を変更することもできます。ただし、Web.config の Compilation の設定が必要です。

(3)表示式はそのまま式の結果を html として表示することができます。ただし、テキストボックスのTextプロパティに表示するという事はできません。サーバーコントロールの値としては制約がかかっているようです。

(4)データバインディング式は、データセット(データテーブル)または List(Of T) などのデータをバインドした際にそのフィールドの値を表示することができます。主に Repeater / ListView / DataGrid などの明細型コントロールで複数のデータを連結する際に用いられます。

(5)ディレクティブ式はaspxページの先頭にあるページ毎の設定を宣言し、必ず必要です。中に含まれる属性に関しましてはたくさんの設定がありますので、後述のマイクロソフト公式ページをご参考ください。

(6)式ビルダは Web.config の AppSettings / ConnectionStrings または Resources に設定されている値を表示することができます。


3.使用例

以下にインライン式の使用例を記します。
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="InlineTest.aspx.vb" Inherits="AspNetTest.InlineTest" %>
<%--↑(5)ディレクティブ式--%>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<%--(1)コメントブロック--%>
<% 'これもコメントブロック %>

<%--(2)埋め込みコードブロック--%>
<% If Me.IsShow = True Then %>
<div class="selector">
</div>
<% End If %>

<%--(2)埋め込みコードブロックで
条件付きコンパイル定数を使用する場合
Web.config に <Compilation debug="trueまたはfalse"> の記述が必要です。
--%>
<% #If DEBUG Then %>
<div class="selector1">
</div>
<% #Else %>
<div class="selector2">
</div>
<% #End If %>

<%--(3)表示式 その1--%>
<%= DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") %>

<%--(3)表示式 その2--%>
<a href='<%= Me.ResolveUrl("~/index.aspx")%>' />

<%--(3)表示式 その3--%>
<div class='<%= IIf(Me.IsShow, "selector", "").ToString()%>' >
</div>

<%--(4)データバインディング式--%>
<asp:Literal ID="ltrTest" runat="server" Text="<%# Eval("FieldName")%>" />
<a href='<%# Me.ResolveUrl(Eval("Url"))%>' />

<%--(6)式ビルダー--%>
<asp:Literal ID="Literal1" runat="server" Text="<%$ AppSettings: copyright %>" />

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



4.マイクロソフト公式ページ

マイクロソフト公式サイトにて上述のインライン式それぞれの詳細説明が載っていますのでご参考ください。

コメントブロックについて
http://msdn.microsoft.com/en-us/library/4acf8afk.aspx

埋め込みコードブロックについて
http://msdn.microsoft.com/en-us/library/ms178135.aspx

表示式について
http://msdn.microsoft.com/en-us/library/6dwsdcf5.aspx

データバインディング式について
http://msdn.microsoft.com/en-us/library/bda9bbfx.aspx

ディレクティブ式について
http://msdn.microsoft.com/en-us/library/xz702w3e.aspx

式ビルダーについて
http://msdn.microsoft.com/en-us/library/d5bd1tad.aspx






最後までお読みいただきありがとうございます。
いかがでしたでしょうか。他にも asp.net に関連する記事を投稿しておりますのでよろしければご参考くださいませ。




関連記事

コメント

コメントの投稿

※名前とタイトルが入力されていないコメントでは他のコメントとの区別ができません。

 入力されていないコメントには返信しませんのであらかじめご了承くださいませ。

※ニックネームでも良いので必ずご入力ください。

    

※必ずご入力ください。

    
    

※必ずご入力ください。

※技術的な質問には環境やエラーについて正確かつ詳細にお教えください。

・正確なエラーの内容

・Windowsのバージョン番号

・Visual Studioのバージョン

・機器の型番

・アプリやソフトのバージョン

    

カテゴリ別記事一覧

広告

プロフィール

石河 純


著者名 :石河 純
自己紹介:素人上がりのIT技術者。趣味は卓球・車・ボウリング

IT関連の知識はざっくりとこんな感じです。
【OS関連】
WindowsServer: 2012/2008R2/2003/2000/NT4
Windows: 10/8/7/XP/2000/me/NT4/98
Linux: CentOS RedHatLinux9
Mac: macOS Sierra 10.12 / OSX Lion 10.7.5 / OSX Snow Leopard 10.6.8
【言語・データベース】
VB.net ASP.NET C#.net Java VBA
Xamarin.Forms
Oracle10g SQLServer2008R2 SQLAnywhere8/11/16
ActiveReport CrystalReport ReportNet(IBM)
【ネットワーク関連】
CCNP シスコ技術者認定
Cisco Catalyst シリーズ
Yamaha RTXシリーズ
FireWall関連
【WEB関連】
SEO SEM CSS IIS6/7 apache2

休みの日は卓球をやっています。
現在、卓球用品通販ショップは休業中です。