データ バインドされたテンプレート列を持つグリッドビューがあります。ここに XML コード全体を貼り付けるわけではありませんが、基本的には各列の内訳を次に示します。
- アイテム ID (DataBound 列)
- 項目カテゴリ (DataBound 列)
- 項目のサブカテゴリ (DataBound 列)
- アイテム (DataBound 列)
- 注文数量 (テキストボックス - 無制限のテンプレート フィールド)
- サプライヤー (DropDownList 無制限のテンプレート フィールド)**
- 品目原価 (テキストボックス - 無制限のテンプレート フィールド)
- 有料 (チェックボックス - 無制限のテンプレート フィールド)
グリッドビューは、すべてのレコードを取得し、選択したカテゴリによってのみフィルター処理します (したがって、カテゴリごとに約 70 レコードのみをプルするため、それほど大きくはありません)。
SSMS では、実行に 0 秒かかります。
ASP.net では約 20 秒かかります。
さらに悪いことに、サプライヤのドロップダウンは現在空白のフィールドです。ただし、実際にこのコードをソースに追加すると:
<ItemTemplate>
<asp:DropDownList ID="ddSupplier" runat="server" DataSource="<%# PopulateControls() %>"
DataTextField="SupplierName" DataValueField="SupplierName" />
</ItemTemplate>
<ControlStyle BorderStyle="Solid" />
<HeaderStyle HorizontalAlign="Left" VerticalAlign="Middle" />
<ItemStyle BorderStyle="None" HorizontalAlign="Left" VerticalAlign="Middle"
Width="50px" />
</asp:TemplateField>
その後、すべての値を取得するのに約 60 秒かかります。
私の質問:
- グリッドビューで基本的な選択スクリプトを介して値を取得するより高速な方法はありますか?
- バインドされたフィールドを持つテンプレートが 1 つ以上あることに問題はありますか? データバインドされた列のみを含む他のデータグリッドがあり、それらは非常に迅速に実行されます。
ヘルプ?