我正在尝试dynatable和我遇到一个问题.我不知道如何更新不同的json文件中的记录.
我的HTML身体:
<input type="button" value="items a" id="setToItemsA"><br>
<input type="button" value="items b" id="setToItemsB"><br>
<br><br>
<table id="my-final-table">
<thead>
<th>Band</th>
<th>Song</th>
</thead>
<tbody>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
我的剧本
$(document).ready(function() {
var json1 = [
{
"band": "Weezer",
"song": "El Scorcho"
},
{
"band": "Chevelle",
"song": "Family System"
}
];
var json2 = [
{
"band": "Band1",
"song": "Song1"
},
{
"band": "Band2",
"song": "Song2"
}
];
$('#my-final-table').dynatable({
dataset: {
records: json1
}
});
$('#setToItemsA').click(
function() {
setToItems(json1);
});
$('#setToItemsB').click(
function() {
setToItems(json2);
});
function setToItems …Run Code Online (Sandbox Code Playgroud) 更新:为了避免问题完全归结为相同的原始政策,我尝试在本地服务,所有资产来自http://localhost:4000使用服务.它没有解决问题.因此,由于相同的原始策略,编辑小提琴可能不起作用,但您可以在那里看到代码.
我正在尝试使用Dynatable加载外部JSON,跳过read/normalize步骤(从现有表生成JSON).这应该得到支持,但它对我不起作用.
这是我对JSFiddle的尝试.从文档中加载JSON(这对我来说似乎并不十分有用)工作正常,如小提琴中所见.但是从URL中提取它根本不起作用.
这是我的JavaScript:
// getting JSON from the document works, but of what use is that?
$(document).ready( function() {
$('#local').dynatable({
dataset: {
records: JSON.parse($('#music').text())
}
});
// getting JSON from a remote source fails:
$('#remote').dynatable({
dataset: {
ajax: true,
ajaxOnLoad: true,
ajaxUrl: '//www.dynatable.com/dynatable-ajax.json',
records: []
}
});
});
Run Code Online (Sandbox Code Playgroud)
...引用两个表,一个id为"local",另一个id为"remote",以及包含本地表数据的脚本:
<h3>Remote JSON: Failing</h3>
<table class="table table-striped" id="remote">
<thead>
<th>Some Attribute</th>
<th>Some Other Attribute</th>
</thead>
<tbody>
</tbody>
</table>
<hr>
<h3>Local JSON: Succeeding</h3>
<table …Run Code Online (Sandbox Code Playgroud) 我将data-dynatable-no-sort属性添加到我的表头中,如下所示:
<th data-dynatable-no-sort>Delete</th>
Run Code Online (Sandbox Code Playgroud)
但它对我不起作用.
我将该属性添加到删除列.为什么这个属性不起作用?
我正在使用dynatable来启动我的桌子.这就是我使用它的方式:
function getData(obj) {
$.getJSON("AjaxEngine/AddPayment.aspx", { sender: "seller-factor", id: 1 })
.done(function (data) {
var dynatable = $('#factors-table').dynatable({
dataset: {
records: data.Factors
},
features: {
paginate: false,
search: false,
recordCount: true,
perPageSelect: false
}
})
.bind('dynatable:afterProcess', bindSelectRow);
}
Run Code Online (Sandbox Code Playgroud)
getData()将被解雇的change()事件select.当用户第一次选择项目时,它可以正常工作,但是当所选项目更改时,它将不会加载新数据.几天前我在插件中问过,但没有回答.
我尝试了多种方法,比如这个:
function getData(){
$.getJSON("AjaxEngine/AddPayment.aspx", { sender: "seller-factor", id: 1 },
function (data) {
var dynatable = $('#factors-table').data('dynatable');
dynatable.records.updateFromJson({records: data});
dynatable.records.init();
dynatable.process();
});
}
Run Code Online (Sandbox Code Playgroud)
当我记录它是一个对象时,它说dynatable.records是未定义dynatable的.我认为作为一个技巧,可以检查是否dynatable应用于表,如果是,先破坏它然后重新应用它,但我不知道该怎么做.
JSFiddle:http://jsfiddle.net/maysamsh/pDVvx/16/