Datalist ItemTemplateでデータリストを表示する方法
-
28-10-2019 - |
質問
ASP.NET Web-Formプロジェクトで私が抱えている問題は次のとおりです。
データベースのすべての製品を示すデータリストがあり、各製品には1つ以上の色があります。現時点では、この製品とそのデフォルトの写真を表示するために、このようなクエリを書きますが、その製品に関連する色ではありません。
var query = from p in db.Products
from c in db.Pics
where c.ProductId == p.ProductId
where c.IsDefault == true
select new { p.ProductId, p.ProductType, p.Name, p.Number, p.Package, p.Model, p.Size, p.Material, p.MantoLengh, c.PicAddress};
DataList1.DataSource = query;
DataList1.DataBind();
関連する色をリスト制御(Datalistやその他のリストコントロールなど)にバインドする方法がわかりません。データリストのコントロール内には、詳細についてはデータベース図のビューがあります。
解決
このクエリは、私の構文がわずかに出ている場合、事前に謝罪しますが、c#よりもVBです。
var query = from p in db.Products
select new { p.ProductId,
p.ProductType,
p.Name,
p.Number,
p.Package,
p.Model,
p.Size,
p.Material,
p.MantoLengh,
p.Pics.Where(x => x.IsDefault).Select(x => x.PicAddress).ToList(),
p.Colors.Select(x => x.ColorHex).ToList() };
基本的に、匿名のタイプでは、lambdaを使用してselect()。tolist()を使用して1対多コレクションを取得し、.where()を使用してフィルタリングを実行できます。
それが役立つことを願っています。
編集 - あなたのコメントへの応答:
実際の色を作成するのに最適な賭けのように見えたので、私は16進ストリングを選びました。六角形から色をセラーにするには、参照してください この記事. 。リストのどこに色を追加しますか?
他のヒント
結果をデータリストに縛り付けた後、あなたのデータリストでこのようなことをすることができるはずです$ <%#query.dataitem( "colors")%>
所属していません StackOverflow