asp:repeaterのItemDataBoundイベント中に、データバインドされているアイテムを取得したいと思います。
私は次のことを試しました(これはstackoverflowの質問では受け入れられない答えでした):
protected void myRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
Object dataItem = e.Item.DataItem;
...
}
しかしe.Item.DataItem
、nullです。
ItemDataBoundというイベント中にデータバインドされているアイテムにアクセスするにはどうすればよいですか。アイテムがデータバインドされているときに、イベントItemDataBoundが発生すると想定します。
オブジェクトを取得して、表示方法を制御する手順を実行できるようにします。さらに、オブジェクトには、表示方法を充実させるための追加の便利なプロパティがある場合があります。
答え
ツールは正しい答えを持っていました。答えは、is(Item、AlternatingItem)のe.Item.Data
場合にのみ有効です。e.Item.ItemType
それ以外の場合は無効です。私の場合、DataItemがないヘッダー(またはフッター)行でItemDataBoundイベントを受信していました。
protected void myRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
// if the data bound item is an item or alternating item (not the header etc)
if (e.Item.ItemType != ListItemType.Item &&
e.Item.ItemType != ListItemType.AlternatingItem)
{
return;
}
Object dataItem = e.Item.DataItem;
...
}