場合
ユーザーが既存のアイテムを検索し、一致するものを 3 つの列に表示できるインターフェイスが必要です。しかし、パフォーマンスは非常に重要です。では、データソースが、Name、PhoneNo、および Email を取得する人々のリストであるとしましょう。私は Telerik の RadComboBox を使用しており、EnableLoadOnDemand が組み込まれています (キーを押したり、貼り付けたりすると、リストがリロードされます)。
最初のテストから、パフォーマンス ヒットが 500 データアイテム マークのどこかに表示されるのを見てきました。パターン マッチングは 3 つの列すべてで行われるだけでなく、Contains 型でもある (つまり、文字列内の任意の場所に一致する) ため、これはまったく不合理ではありません。ちなみに、検索モードを StartsWith に切り替えても、大幅なパフォーマンスの向上は見られません。
RadComboBox
<telerik:RadComboBox runat="server" ID="RadComboBox1"
Height="290px" Width="700px" EmptyMessage="Enter your query" EnableVirtualScrolling="False"
MarkFirstMatch="true" Filter="StartsWith" EnableLoadOnDemand="true"
HighlightTemplatedItems="true" AutoPostBack="True" EnableTextSelection="true"
DataSourceID="SqlDataSource1">
<HeaderTemplate>
<ul>
<li class="col1">Name</li>
<li class="col2">Mobile</li>
<li class="col3">E-mail</li>
</ul>
</HeaderTemplate>
<ItemTemplate>
<ul>
<li class="col1">
<%# DataBinder.Eval(Container.DataItem, "ContactName")%></li>
<li class="col2">
<%# DataBinder.Eval(Container.DataItem, "Mobile")%></li>
<li class="col3">
<%# DataBinder.Eval(Container.DataItem, "Email")%></li>
</ul>
</ItemTemplate>
</telerik:RadComboBox>
たとえば、3000 のデータ行でこれをやってのけることを期待するのは合理的ですか? つまり、私のアプローチを最適化する方法はありますか?