私は、ウェブページ上にグリッドを表示するために、slickグリッドと呼ばれるjavascriptライブラリを使用しています。グリッド情報をajax経由でサーバーに送信する必要があります。私の問題は、グリッドにアクセスするためにjquery表記を使用する必要があることです。ここで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");
}
});
};
};
任意の助けいただければ幸いです。
編集:trying to access the grid variable where my todo is
を実行VAR Data_Grid = grid.getData()は、<------その線とグリッドの内容を取得......... var myJsonString = JSON.stringify(Data_Grid); <-----何らかの理由でjson – Xique
に変換すると、TODOのグリッド変数にアクセスすることはできません。 –
私もそれを使用していますし、それは働いていますO_o – Xique