我像这样从 ajax 调用返回一组结果
<g:submitToRemote update="updateMe" action="getParams" asynchronus="false" value="Search" name="SearchButton" type="hidden"/>
这是将调用的结果放在 updateMe DIV 标记中。
现在,我实际上是从我的 Controller 中渲染一个表格,如下所示:
render(view: 'ajaxResults', model:[results:resultRows])
其中 ajaxResults 是一个模板,如下所示:
<div class="list">
<h1>Query Results</h1>
<table style="width: 80%; align: center;" class="sortable resizable">
<thead>
<tr>
<th id="emp_name" class="sortfirstasc">Employee Name</th>
<th id="title">Title</th>
<th id="labor_grade">Labor Grade</th>
<th id="name">Hit</th>
<th id="total_exp">Experience (Yrs)</th>
</tr>
</thead>
<tbody>
<g:each in="${results}" status="i" var="search">
<tr>
<td><g:link controller="employee" action="edit" id="${search.id}">${search.emp_name?.encodeAsHTML()}</g:link></td>
<td>${search.title?.encodeAsHTML()}</td>
<td>${search.labor_grade?.encodeAsHTML()}</td>
<td>${search.name?.encodeAsHTML()}</td>
<td>${search.total_exp?.encodeAsHTML()}</td>
</tr>
</g:each>
</tbody>
</table>
</div>
<div class="paginateButtons">
<g:paginate total="${Search.count()}" />
</div>
</div>
问题是——这个表实际上是不可排序的。我正在尝试使用 tablekit
<link rel="stylesheet" type="text/css" media="all" href="../css/tablekit.css" />
<g:javascript library="tablekit"></g:javascript>
我认为问题在于我正在插入它并且它没有重新呈现给我排序的表格。我怎样才能强制发生这种情况?
最佳答案
我也在谷歌和其他地方搜索过这个,但什么也没找到...... 但是当我在其他地方广泛搜索后在 tablekit 网站的常见问题解答中找到答案时,这很有趣! 只有两个常见问题解答,第二个是大多数人(例如我)搜索的那个。 visit了解详情。 它说:
TableKit.reloadTable(tablename);
强制 TableKit 重新初始化。
希望这对您有所帮助。
关于javascript - 使用 tablekit 对从 AJAX 方法返回的表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4557383/