0

サーバー側の処理、ページネーション、およびフィルタリングを備えたタンポポのデータテーブルを使用して、Web アプリを開発しています。私が使用しているバージョンは 1.1.0 (JSP) です

外部フォームを使用してデータテーブルのデータセットを更新したいと考えています。テーブルには、次の 2 つのフィールドがあります: Start DateStop Date :

<datatables:table id="myTableId" url="/results"  serverSide="true" serverparams="getFilterParams" processing="true" theme="bootstrap3" cssClass="table table-striped">
    <datatables:column title="Start Date" property="startDate" filterable="false" />
    <datatables:column title="Stop Date" property="stopDate" filterable="false" />
</datatables:table>

外部フォームでは、ブートストラップdatetimepickerを使用しています

<sf:form id="searchForm">
    <div class="form-group">
        <div>Start Date</div>
        <div class='input-group date' id='startDate'>
            <input name='startDate' type='text' class="form-control" /> <span
                class="input-group-addon"> <span
                class="glyphicon glyphicon-calendar"></span>
            </span>
        </div>
    </div>
    <div class="form-group">
        <div>Stop Date</div>
        <div class='input-group date' id='stopDate'>
            <input name='stopDate' type='text' class="form-control" /> <span
                class="input-group-addon"> <span
                class="glyphicon glyphicon-calendar"></span>
            </span>
        </div>
    </div>
    <div>
        <button id="searchBtn" class="btn btn-primary btn-search searchButton"
            type="button" onclick="oTable_myTableId.ajax.reload();">Search</button>
    </div>
</sf:form>

Javascript

function getFilterParams(aoData) {
    aoData.push({"name" : "startDate", "value" : $('#startDate').val()});
    aoData.push({"name" : "stopDate", "value" : $('#stopDate').val()});
}

コントローラ

@RequestMapping(value = "/results")
    public @ResponseBody DatatablesResponse<Results> findAllForDataTables(HttpServletRequest request) {

        DatatablesCriterias dataTableCriterias = DatatablesCriterias.getFromRequest(request);

        for (ColumnDef columnDef : dataTableCriterias.getColumnDefs()) {
            switch (columnDef.getName()) {
                case "startDate":
                    columnDef.setSearch(request.getParameter("startDate"));
                    break;
                case "stopDate":
                    columnDef.setSearch(request.getParameter("stopDate"));
                    break;
            }
        }
        DataSet<Results> results = this.resultsServiceimpl.findResultsWithDatatablesCriterias(dataTableCriterias);
        return DatatablesResponse.build(results, dataTableCriterias);
    }

datetimepicker 外部フォームで選択された範囲内のすべての行を検索する結果をフィルター処理する方法について教えてください。

ありがとう

4

1 に答える 1

0

最近、私は同じ種類のタスクを実行し、次の手法でその特定の問題を解決しました。

  1. dateFrom フィールドと dateTo フィールドを持つ Model クラスを作成しました。
  2. ユーザーが日付ピッカーで日付を選択し、「確認」ボタンを押すと、サーバーは、dateFrom と dateTo を含む @ModelAttribute でポスト リクエストを受け取ります。
  3. 次に、その日付 (例) でデータベースからデータを取得 select * from table where (date between :datefrom AND :dateto)し、ビューに送り返します。
于 2016-01-18T08:57:05.613 に答える