gpt4 book ai didi

javascript - 如何将项目光滑网格添加到多选文本框?

转载 作者:行者123 更新时间:2023-11-30 20:43:55 26 4
gpt4 key购买 nike

我是 Slick Grid 的新手。这是我的 javascript 代码,我在这里声明了我的变量,

var grid;
var printPlugin;
var dataView;
var data = [];
var selectdItems = [];
var columns = [
{ id: "Id", name: "Id", field: "Id", sortable: true },
{ id: "Name", name: "Name", field: "Name", sortable: true, cssClass: "cell-title", editor: Slick.Editors.Text, width: 300 },
{ id: "Addr", name: "Addr", field: "Addr", sortable: true, editor: Slick.Editors.Text }
];

我在此处添加复选框,通过使用此复选框,我想将这些项目添加到“selectdItems”数组中

        var checkboxSelector = new Slick.CheckboxSelectColumn({
cssClass: "slick-cell-checkboxsel"
});
columns.push(checkboxSelector.getColumnDefinition());

这些是我的选择

var options = {
enableCellNavigation: true,
enableColumnReorder: false,
multiColumnSort: true,
editable: true,
ebableAddRow: true,
asyncEditorLoading: true,
autoEdit: false
};

这是我获取数据的ajax方法。在这个ajax方法中我写了'$('#btnShift').click(function (e)){}'函数,如果我在ajax方法之外写这个方法它不起作用,如果我用 ajax 方法编写此函数 ajax 方法调用页面中的每个操作,当我将选定的记录添加到多行文本框时,这些项目绑定(bind)并再次将数据重新绑定(bind)到网格并清除多行文本框

  var param = {};
$.ajax({
type: 'GET',
url: 'AllFeatures.aspx/method',
data: JSON.stringify(param),
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
success: function (resp) {
var v = resp;
for (i = 0; i < resp.d.length; i++) {
data[i] = {
Id: resp.d[i].split('~')[0],
Name: resp.d[i].split('~')[1],
Addr: resp.d[i].split('~')[2],
};
}
grid = new Slick.Grid("#myGrid", data, columns, options);
var argRows = [];
grid.onSelectedRowsChanged.subscribe(function (e, args) {
argRows = args.rows;
});
grid.setSelectionModel(new Slick.RowSelectionModel({ selectActiveRow: false }));
grid.registerPlugin(checkboxSelector);
var columnpicker = new Slick.Controls.ColumnPicker(columns, grid, options);

$('#btnShift').click(function (e) {
var dataView = new Slick.Data.DataView();
dataView.beginUpdate();
dataView.getItems().length = 0;
dataView.endUpdate();
for (var i = 0; i < argRows.length; i++) {
selectdItems.push(data[argRows[i]]);
data.splice(argRows[i], 1);
$('#sel').append('<option>' + data[argRows[i]]['Name'] + '</option')
}
grid = new Slick.Grid("#myGrid", data, columns, options);
e.priventDefault();
});
}

});

我想在单击 shift 方法后选中网格中的复选框时,复选框选择的数据转移到多行文本框。(我不想多次调用 ajax 方法)

这是我的 HTML 代码

 <div id="myGrid" style="width: 600px; height: 500px;" class="item-details-editor-container" ></div>
<button data-action='save' id="btnShift">shift</button>
<select multiple="" id="sel"></select>

最佳答案

如果没有模型,很难准确地说出您要做什么。

但是你看过 6pac 仓库中的例子吗: https://github.com/6pac/SlickGrid/wiki/Examples

例如: http://6pac.github.io/SlickGrid/examples/example-select2-multiselect-editor.html

关于javascript - 如何将项目光滑网格添加到多选文本框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48941576/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com