2009-08-14 10 views
4

<%#some code%>および<%= some code%>を介した.aspxページのバインディングの実行には違いがありますか?<%on .aspxページによるバインド

例:

VS

感謝。 -Igor

+0

+閉じる、複製:http://stackoverflow.com/questions/370201/why-will-expressions-as-property-values-on-a-server-controls-lead-to-a-com – Juliet

答えて

6

<%# %>を呼び出すときにResponse.Write();

<%# %>の同等のデータバインディングのためであるがバインディング式に使用されています。単純に、Control.DataBindが呼び出されると、バインディング式は実際の値になります。これは、式の実行時の値に基づいて、サーバーコントロールにいくつかのプロパティを設定するために使用できます。

<%= expression %>は相をレンダリング上で動作し、直接式の値を出力<% Response.Write(expression); %>と等価です。その結果、サーバーサイドオブジェクトの動作を変更することはできません。

+0

バインディング式はPage.DataBind()が呼び出された場合にのみページ・レベルで機能します。 –

+0

さて、 'Page'は' Control'を継承しているので、全体としてもそれに当てはまります。 'DataBind'は個々のコントロールに対しても呼び出すことができます。 –

+0

右。私は人々が一般に混乱していると思うが、<%#式をページに置いて何も表示されないのか疑問に思う。それほど経験の浅い開発者にとっては、Page:Control、DataBind()を呼び出すことができます。 –

1

<%= %>.DataBind();

関連する問題