テーブルにデータを表示するために ajax ソースを使用しています。テーブルの上に、テーブルに表示したいものをフィルタリングする基準があります。私が達成したいのは、初期データの読み込みを無効にすることです。そのため、ページが読み込まれると空のテーブルが表示され、条件を選択して [フィルターを適用] ボタンを押すと、データが読み込まれます。
だから私はdeferRenderを使ってみましたが、うまくいかないようです。ここにコードがあります
<datatables:table id="myTableId" deferRender="true" url="/persons" serverSide="true" processing="true" dom="l0rtip" filterSelector="#filterButton" filterClearSelector="#filterClearButton">
<datatables:column title="Id" name="id" property="id" />
<datatables:column title="FirstName" name="firstName" property="firstName" />
<datatables:column title="LastName" name="lastName" property="lastName" />
<datatables:column title="City" name="city" property="address.town.name" filterable="true" filterCssClass="input-medium" />
<datatables:column title="Mail" name="mail" property="mail" renderFunction="ajax#mailify" />
<datatables:column title="Salary" name="salary" property="salary" renderFunction="custom-rendering#toCurrency" filterable="true" filterType="number_range" filterCssClass="input-small" />
<datatables:column title="BirthDate" name="birthDate" property="birthDate" filterable="true" filterType="date_range" filterDateFormat="yyyy-mm-dd" renderFunction="custom-rendering,moment,bootstrap-datepicker#toDate" filterCssClass="input-small"/>
<datatables:column title="Company" name="company" property="company.name" filterable="true" filterCssClass="input-small" filterType="select" filterValues="filtering#predefinedValues" />
<datatables:extraHtml uid="0" cssStyle="float:right;">
<a id="filterButton" value="Filter" class="btn btn-primary">Apply filters</a>
<a id="filterClearButton" value="Filter" class="btn btn-inverse">Clear filters</a>
</datatables:extraHtml>
</datatables:table>
コントローラーで:
@RequestMapping(value = "/persons")
public @ResponseBody
DatatablesResponse<Person> findAllForDataTablesFullSpring(@DatatablesParams DatatablesCriterias criterias) {
DataSet<Person> dataSet = personService.findPersonsWithDatatablesCriterias(criterias);
return DatatablesResponse.build(dataSet, criterias);
}