アクセスできる <%# %> タグ内
- コード ビハインド クラスで表示されるすべてのもの (保護されたメソッドとプロパティを含む)。
- <@import @> を使用して aspx ページで宣言されたもの。
- ItemDataBound イベントが発生したときにイベント引数として渡されたもの (例: RepeaterItemEventArgs、DataListItemEventArgs など)。
Containerは、実際には RepeaterItemEventArgs.Item、DataListItemEventArgs.Item などのラッパーです。そのため、ItemDataBound イベント内のコード ビハインドでe.Itemとして実際にアクセスできます(e は通常、イベント引数パラメーター名です)。
DataBinderは、 System.Web.UI.DataBinderを使用してコード ビハインドからもアクセスできます。
ちなみに、Container.DataItem のキャストは、Eval を使用するよりも優先されます。Eval はリフレクションを使用するため、そこにオーバーヘッドがあります。VB.NETでは、次のようになります
<%#DirectCast(Container.DataItem, DataRow)("some_column")%>
または C#
<%#((DataRow)Container.DataItem)["some_column"].ToString()%>