私は大学のためのプロジェクトに取り組んでいます。顧客が注文できるショップのウェブサイトです。
私がこれまでに行ったことは、linqクエリを使ってGridviewに製品を実装したことです。
今、私が問題を抱えているのは、これらの行をクリック可能にして、gv_SelectedIndexChangedメソッドを実行できるようにして、下のラベルに製品の説明を追加できるようにすることです。
私はまた、他の人にデータを渡すことができるようにしたい私がボタンをクリックしたときに選択した行に関連するページ。私はこれを理解することができると自信を持っています。
だから私の質問は、私はどのように私のGridviewの行をクリック可能にすることができますか?
これは私が持っているGridviewです。
<asp:GridView ID="gv" runat="server" OnSelectedIndexChanged="gv_SelectedIndexChanged">
</asp:GridView>
そして、これはそれを埋め込むコードです。
var products = from p in db.ProductTbls
select new
{
Name = p.ProductName,
Cost = p.UnitPrice.ToString(),
Stock = p.Quantity.ToString()
};
gv.DataSource = products.ToList().Distinct();
gv.DataBind();
私はそれを行う方法をオンラインで見つけたガイドを使用してみましたが、それを動作させる方法を見つけることができませんでした。 ガイド
回答:
回答№1の場合は-1@コンサルタント、私はあなたのアプリがなぜかと信じているクラッシュは、遅延操作を実行する前に貪欲な操作を実行していることです。私が言っていることは、あなたが.ToList()の前に.Distinctを実行するべきですということです。したがって、次のように書くべきです:
gv.DataSource = products.Distinct().ToList();
ToList()のような貪欲な操作は、.Distinctのような操作が遅延されている間にすぐに実行します。 あなたは2つのタイプの詳細を見つけることができます ここに!