デフォルトのオートコンプリートではなく、ボタンのクリックによる SlickGrid フィルタリングが要求されたため、updateFilter() メソッドを変更しました (「#display」はボタン ID です)。
$('#display').click(function() {
updateFilter();
});
function updateFilter() {
theString = $('#txtSearch').val();
while(theString.substring(0,1)==" ")
theString = theString.substring(1, theString.length);
searchString = new String(theString);
dataView.setFilterArgs({
searchString:searchString,
});
dataView.refresh();
}
非常に単純です...ボタンがクリックされたときにテキストボックスの値を取得し、それが文字列であることを確認して、処理のために「searchString」に渡します。お気づきのことと思いますが、先頭のスペースも削除する必要がありました。そうしないと、フィルターが一貫して初回通過に失敗します。たとえば、Firebug トレースには、実際の「57」ではなく「57」が表示されます。これにより、リターンがグリッドをクリアします(先頭のスペースと一致しなかったためだと思います)。要件には、フィルターをリセットする「フィルターのクリア」リンク (「#txtSearch」テキストボックスを含む) も必要でした。フィルターは、クリアされた後に常に機能し、トレースが先頭のスペースを示しませんでした。theString と searchString の両方がスクリプト (="") の先頭で初期化されました。私の質問は、