。は、私はC#のasp.net4を使用するオブジェクトに匿名型をキャストし、1つのフィールドを取得
私は匿名型(フィールド:タイトル、区分)でリピータを移入する方法を持っているが、リピータ内部で私はまた、ラベルを配置:
var parentCategories = from c in context.CmsCategories
where c.CategoryNodeLevel == 1
select new { c.Title, c.CategoryId };
uxRepeter.DataSource = parentCategories;
uxRepeter.DataBind();
私はそれぞれの文字のプロパティを変更する必要がありますラベルは、リピータイベントItemDataBound
protected void uxRepeter_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
HyperLink link = (HyperLink)e.Item.FindControl("uxLabel");
uxLabel.Text = // How to do here!!!!!!!!
}
の私のリピータ内だから私はe.Item(またはもしあればより良い方法を)使用してLabel.Textのプロパティを設定する必要があります。
私の問題e.Item(匿名型のフィールドタイトル)をCASTできず、自分のラベルのテキストとして設定することができません。
匿名タイプはオブジェクトタイプのみにキャストできますが、私の場合は匿名タイプにタイトルとカテゴリIDフィールドがあります。
私の質問:
私が興味を持つフィールドをキャストして取得する方法?これにお時間をいただきありがとうございますか?
編集:私が受け取る SOME ERROR:
Unable to cast object of type '<>f__AnonymousType0`2[System.String,System.Int32]' to type 'System.String'.
私が疑問に思っていたことは、同じ形状の2つの匿名型が型互換性のある実装の詳細か、互換性が必要な仕様の一部ですか? –
包括的なコードをお寄せいただきありがとうございます。 – GibboK
@Rex:これは仕様の一部です。私は私の上にリファレンスを持っていませんが、基本的に同じアセンブリ*内で、同じ順序で同じプロパティ名と型を持つ2つの匿名型の構築式は同じ型を参照する必要があります。 –