1. ka_to

    Posted

    ka_to
Changes in title
+インライン式(<%=, <%@, <%#, <%$, <%--)の概要
Changes in tags
+ASP.NET
2.0
3.0
3.5
Changes in body
Source | HTML | Preview
@@ -0,0 +1,163 @@
+[.NET Framework の ASP.NET インライン式の概要](http://support.microsoft.com/kb/976112/ja)から
+
+## < %... % >  … コードブロックを埋め込む
+
+```csharp
+<%@ Page Language="VB" %>
+<html>
+<body>
+ <form id="form1" runat="server">
+ <% For i As Integer = 16 To 24 Step 2%>
+ <div style="font-size: <% Response.Write(i)%>">
+ Hello World<br />
+ </div>
+ <% Next%>
+ </form>
+</body>
+</html>
+```
+
+## <%= ... %>  … 式を表示する
+`Response.Write(...)` のステートメントと同等
+
+```csharp
+<%@ Page Language="VB" %>
+<html>
+<body>
+ <form id="form1" runat="server">
+ <%=DateTime.Now.ToString() %>
+ </form>
+</body>
+</html>
+```
+
+## < % @... % > … ディレクティブの式
+
+いろいろ種類がある
+
+[テキスト テンプレートのディレクティブの構文](https://msdn.microsoft.com/ja-JP/ja/library/xz702w3e(v=vs.100).aspx)
+
+[Text Template Directive Syntax](https://msdn.microsoft.com/en-us/library/xz702w3e(v=vs.100).aspx)
+
+## < %#... % > … データバインディング式
+
+コントロールのDataBindメソッドが呼び出されるとき、指定したプロパティの値に変換する
+
+以下の場合、Submitボタンを押すと **<%# ... %>** が選択した文字に表示される
+
+```aspx-cs:sample.aspx
+ <script language="C#" runat="server">
+ void SubmitBtn_Click(Object sender, EventArgs e) {
+ Page.DataBind();
+ }
+ </script>
+
+ <form runat="server">
+ <asp:DropDownList id="StateList" runat="server">
+ <asp:ListItem>CA</asp:ListItem>
+ <asp:ListItem>IN</asp:ListItem>
+ <asp:ListItem>KS</asp:ListItem>
+ <asp:ListItem>MD</asp:ListItem>
+ </asp:DropDownList>
+ <asp:button Text="Submit" OnClick="SubmitBtn_Click" runat="server"/>
+ <p>
+ <!-- CA,IN,...が表示される -->
+ Selected State: <asp:label text='<%# StateList.SelectedItem.Text %>' runat="server"/>
+ </form>
+```
+
+[データ バインディング式の構文](https://msdn.microsoft.com/ja-JP/ja/library/bda9bbfx(v=vs.100).aspx)
+
+[Data-Binding Expression Syntax](https://msdn.microsoft.com/en-us/library/bda9bbfx(v=vs.100).aspx)
+
+## < % $... % > … 式ビルダー
+
+次のファイルから参照する
+
+* アプリケーション構成ファイル(Web.config)
+* リソースファイル(*.resx)
+
+#### 構文
+`<% $ 式プレフィックス: 式の値 %>`
+
+**式プレフィックスの例**
+
+|式プレフィックス||
+|:--|:--|
+|AppSettings|AppSettingsから参照|
+|ConnectionStrings|connectionStringsから参照|
+|Resources|リソースファイルから参照|
+
+上記以外も指定できるらしい
+
+#### サンプル
+
+##### *AppSettingsサンプル*
+***
+```xml:Web.config
+<appSettings>
+ <add key="copyright" value="(c) Copyright 2009 WebSiteName.com"/>
+</appSettings>
+```
+```aspx-cs:sample.aspx
+<div id="footer">
+ <asp:Literal ID="Literal1" runat="server" Text="<%$ AppSettings: copyright %>"></asp:Literal>
+</div>
+```
+
+##### *ConnectionStringsサンプル*
+***
+```xml:Web.config
+<configuration>
+ <connectionStrings>
+ <add name="NorthwindConnectionString1"
+ connectionString="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;"
+ providerName="System.Data.SqlClient" />
+ </connectionStrings>
+</configuration>
+```
+```aspx-cs:sample.aspx
+<asp:SqlDataSource ID="SqlDataSource1" Runat="server"
+ SelectCommand="SELECT * FROM [Employees]"
+ ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString1 %>">
+</asp:SqlDataSource>
+```
+> 引用元はConnectionStringsの大文字小文字が区別されていない
+
+##### *Resourcesサンプル*
+***
+```xml:Messages.resx
+<data name="ThankYouLabel"><value>Thank you very much!</value></data>
+```
+```aspx-cs:sample.aspx
+<asp:Label id="label1" runat="server" text="<%$ Resources: Messages, ThankYouLabel %>" />
+```
+
+> リソースファイル名を指定する
+
+[ASP.NET Expressions Overview](https://msdn.microsoft.com/en-us/library/d5bd1tad.aspx)
+
+[ASP.NET 式の概要](https://msdn.microsoft.com/ja-jp/library/d5bd1tad.aspx)
+
+## < %--...--% >  … サーバー側コメントブロック
+サーバー側コメントブロック
+クライアントには送られない
+
+```csharp
+<%@ Page Language="VB" %>
+<script runat="server">
+ Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
+ Dim strName As String
+ strName = Session("userName")
+ lblUserName.Text = strName
+ End Sub
+</script>
+<html>
+<body>
+ <form id="form1" runat="server">
+ <%-- Label for UserName このコメント行はクライアントへは送られない --%>
+ <asp:Label ID="lblUserName" runat="server" Text=""></asp:Label>
+ </form>
+</body>
+</html>
+```