0

デフォルトのオートコンプリートではなく、ボタンのクリックによる 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 の両方がスクリプト (="") の先頭で初期化されました。私の質問は、

4

1 に答える 1

0

気にしないでください...自傷行為。テキストボックスをvalue=""で初期化したことがわかりました。ごめん!

于 2012-11-07T12:40:53.410 に答える