【发布时间】:2017-07-30 23:38:59
【问题描述】:
我正在使用一个名为 slick grid 的 javascript 库来在网页上显示网格。我需要通过 ajax 将网格信息发送到服务器。我的问题是我需要使用 jquery 表示法来访问网格。
这里是 div 网格:
<div id="myGrid" style="width:100%;height:300px;"></div>
这是我正在使用的 javascript:
var grid;
$(function () {
for (var i = 0; i < 30; i++) {
data[i] = {
pbc_id: "00" + i,
task: "Task " + i,
due_date: "02/02/2017"
};
}
grid = new Slick.Grid("#myGrid", data, columns, options);
grid.setSelectionModel(new Slick.CellSelectionModel());
grid.registerPlugin(new Slick.AutoTooltips());
// set keyboard focus on the grid
grid.getCanvasNode().focus();
var copyManager = new Slick.CellCopyManager();
grid.registerPlugin(copyManager);
copyManager.onPasteCells.subscribe(function (e, args) {
if (args.from.length !== 1 || args.to.length !== 1) {
throw "This implementation only supports single range copy and paste operations";
}
var from = args.from[0];
var to = args.to[0];
var val;
for (var i = 0; i <= from.toRow - from.fromRow; i++) {
for (var j = 0; j <= from.toCell - from.fromCell; j++) {
if (i <= to.toRow - to.fromRow && j <= to.toCell - to.fromCell) {
val = data[from.fromRow + i][columns[from.fromCell + j].field];
data[to.fromRow + i][columns[to.fromCell + j].field] = val;
grid.invalidateRow(to.fromRow + i);
}
}
}
grid.render();
});
grid.onAddNewRow.subscribe(function (e, args) {
var item = args.item;
var column = args.column;
grid.invalidateRow(data.length);
data.push(item);
grid.updateRowCount();
grid.render();
});
})
var DocumentViewModel = function () {
var self = this;
self.sendGridData = function () {
var data = $("myGrid");
//TODO: access the grid data and convert the data to a json string
$.ajax({
async: true,
type: "POST",
dataType: "json",
url: '/MyService/SubmitRequest',
data: ,
success: function (response) {
alert("success");
},
error: function (xhr, textStatus, exceptionThrown) {
alert("error");
}
});
};
};
任何帮助将不胜感激。
【问题讨论】:
-
var Data_Grid = grid.getData();
-
由于某种原因,我无法访问 TODO 所在的网格变量。
-
我也在使用它,它正在工作 O_o
-
在我的编辑中查看图片:
-
grid在全局命名空间中声明,因此 应该 在您的 TODO 点可用。但显然不是,正如您的屏幕截图所证明的那样。所以你的代码不像你上面写的那样。
标签: javascript jquery ajax asp.net-mvc slickgrid