【发布时间】:2017-07-21 12:26:54
【问题描述】:
以下代码示例演示了我如何使用 HTML、敲除和打字稿初始化 jQuery 数据表
HTML:
<table id="coursemoment-info-table" class="table table-hover">
<thead>
<tr >
// headers
</tr>
</thead>
<tbody>
<!-- ko foreach: selectedCourseMoment().courseApplications -->
<tr>
<td>
<a data-bind="{text: ssn, attr:{ href: '/Medlem/' + ssn} }"></a>
</td>
<td data-bind="text:name + ' ' + surname"></td>
.
.
.
</tr>
<!-- /ko-->
</tbody>
</table>
打字稿:
private initCourseMomentInformationDataTable(): void {
$("#coursemoment-info-table").DataTable({
pageLength: 5,
order: [1, 'desc'],
language: {
url: "/Assets/js/jquery-datatable-swedish.json"
}
});
}
我在重新初始化表时遇到了一些问题,但我设法通过首先清除数据表,然后将行添加到数据表并重新绘制它来处理它。
if (this.tableInitiliazed) {
$("#coursemoment-info-table").DataTable().clear().draw();
for (var i = 0; i < data.courseApplications.length; i++) {
var application = data.courseApplications[i];
$("#coursemoment-info-table").DataTable().row.add(
[
application.ssn,
// blah blah yada yada
]).draw();
}
这确实会重新初始化数据表,但它不会像初始化表时那样将超链接放置到第一列。所有其他表格设置都是正确的,例如语言和页面长度。
由于我一次添加一行,多列我不知道如何直接为“applications.ssn”设置列设置。我试图用打字稿初始化视图模型中的数据表,但我遇到了同样的问题。
任何想法如何重新初始化并为特定列设置超链接?
【问题讨论】:
-
我对数据一无所知,很抱歉,但是在 Knockout 中,您需要更新具有可观察对象的 ViewModel,并且 Knockout 将显示其更新后的值。这是一个示例:datatables.net/dev/knockout,希望对您有所帮助。
-
您好,视图模型得到更新,表格得到正确的数据。只是在重新初始化表格时,应该放置超链接的列不起作用。
标签: javascript jquery knockout.js datatable