へのIQueryableを返すための正しい構文はどのようなものです。以下は、指定したIDの画像のリストを返すビジネスロジッククラスのコードです。私の後ろに私のコードでは私はにSqlDataSourceコントロールを排除するために、いくつかのリファクタリングをやっているデータバインドコントロール
public class BusinessLogic
{
public IQueryable<SBMData2.File> GetPackageImages(int id)
{
SBMData2.SBMDataContext db = new SBMData2.SBMDataContext();
IQueryable<SBMData2.File> PackageImages = from f in db.Files
where f.PackageID == id
select f;
return PackageImages;
}
}
次のようなものを実行して、ASPのリピータにのIQueryableオブジェクトをバインドしようとしています。
int id = RadGrid1.SelectedValues["id"].ToString();
Repeater1.DataSource = BusinessLogic.GetPackageImages(id);
Repeater1.DataBind();
マイ項目テンプレートは、バインドされたIQueryableオブジェクトからファイル名を結合し、単純なイメージタグが含まれています。例:
<img src="PackageFile.ashx?Thumb=true&Id=<%# DataBinder.Eval(Container.DataItem, "FileName").ToString() %>" alt="loading image ..."/>
私の質問には2つの部分があります。まず、BusinessLogicクラスの内部で正しい構文を使用していますか?私はそれが私のコードの後ろからGetPackageImagesにアクセスすることができないためではないと思う。第二に、データソースを正しく指定しなかったことはほぼ確実です。どうすれば修正できますか?
ありがとうございました!
ありがとうジョン。これは非常に参考になりました。私はまだこのクエリをバインドするデータへの正しい方法を理解しようとしています。 – hughesdan
データバインディングは、質問に示されているとおりに正確に動作します。 – hughesdan