DataBinder.Eval
開発環境: Visual Studio 2005
1.目次
2.目的
3.参考書
4.Eval
5.Visual Studio 2005からの設定方法
6.エバる時の注意
GridViewなどのテンプレート機能は、カスタマイズする上で非常に強力な機能です。しかし、このテンプレートを扱う際にデータバインドを行う必要が出てきます。このときに必要となるのが、Evalです。
なれない書式の割りに使う頻度が高いので、メモっておきます。
-
MSDN: DataBinder.Eval Method
-
VS2005
Help: Data-Binding Expression Syntax
Evalとは、データバインドするためのメソッドです。
aspxファイルの中でデータバインドするには、<%#
と %>で囲んだ形でEvalメソッドを表記する必要があります。これにより、実行時にEval式が評価され動的にデータバインドされたHTMLが生成されます。
Eval の使用例 |
<asp:GridView ID="GridView1" runat="server"....>
<Columns>
<asp:TemplateField HeaderText="...">
<ItemTemplate>
<asp:ImageButton ID="ImageButton1" runat="server"
AlternateText='<%# Eval("SiteName") %>'
CommandArgument='<%# Eval("URL") %>'
ImageUrl='<%# Eval("LogoURL") %>'
OnClientClick="<%# Eval("URL",
"OpenNewWindow('{0}')") %>" />
</ItemTemplate>
</asp:TemplateField>
|
この例からわかるように、Eval には書式なし、書式付のシンタックスがあります。
- プロパティ名='<%# Eval("データバインドするフィールド名") %>'
- プロパティ名="<%# Eval("データバインドするフィールド名", "書式") %>"
Visual Studio 2005 を使うと、簡単に設定することができます。
(1)たとえばGridViewにデータソースを設定します。
(2)GridView タスクから「列の編集」をクリックする。

(3)するとフィールドの編集ダイアログが表示されるので、カスタマイズしたい項目を選択し、「このフィールドを
TemplateField に変換します。」をクリックし、テンプレートフィールドにする。

(4)GridViewタスクより、「テンプレートの編集」を選択する。

(5)すると、テンプレート編集モードになるので、カスタマイズしたいItemTemplateを選択する。

(6)対象のItemTemplateが表示されるので、適当なデータバインド可能なコントロールなどを貼り付ける。ここではImageButtonを貼り付けています。

(7)貼り付けたコントロールのタスクより、「DataBindings の編集」を選択する。

(8)すると、次のようなデータバインド編集ダイアログが表示されます。
あとは、バインドするプロパティを選択し、どのフィールドをバインドするかを選択します。「形式」をしてしなければ、プロパティ名='<%#
Eval("データバインドするフィールド名") %>' という形でコードが自動生成されます。

(9) あるいは「形式」を指定することにより、プロパティ名="<%# Eval("データバインドするフィールド名", "書式")
%>" の書式でコードが自動生成されます。

.NETの世界では、Evalとはデータを遅延評価するためのDataBinder.Evalメソッドのことを指します。また、このEvalメソッドにより遅延評価することを一般的に「エバる」と表現することがあります。しかし、同じ「エバる」でもいくつかの間違いやすい表現がありますので、次にまとめました。間違えると致命的な結果をもたらす場合がありますので、表記や取り扱いには十分注意してください。
- DataBinder.Eval
- Lispのeval
- えばる・・・えらそうに振舞うこと。
- エバる・・・エバンジェリストのように振舞う。
- エウ”ァる・・・相手によっては致命的。