Я создал представление с таблицей SlickGrid в диалоговом окне.И я не мог выяснить, как вернуть выбранные строки (отмеченные флажком) в родительское представление.Я не смог найти ни одного примера, чтобы понять, как это реализовать.Похоже, что когда выделение завершено, в диалоговом окне следует запустить вентиляцию.И в родительском представлении это событие должно быть поймано.Но я не знаю, как это можно сделать.Любая помощь приветствуется
Вот мой код:
Просмотр для диалогового окна:
@ модель IEnumerable @using Newtonsoft.Json
<div>
<div id="myGrid" style="width:350px;height:500px;"></div>
</div>
<script>
var md = Html.Raw(JsonConvert.SerializeObject(this.Model));
var mdd = md;
var grid;
var selectedRows = [];
var chosenItems = [];
var data = [];
var options = {
enableColumnReorder: false,
multiColumnSort: true,
editable: true,
enableCellNavigation: true,
asyncEditorLoading: false,
autoEdit: false,
frozenColumn: 1
};
var colms = [
{id: 0, name:"Name", field:"Name",width:200 },
{id: 1, name:"NDB_No", field:"NDB_No", width:40},
{id: 2, name:"GrpTypeFlag", field:"GrpTypeFlag", width:40 },
{id: 3, name:"FdGrp_CD", field:"FdGrp_CD", width:40 }
];
var columns = [];
$(function () {
for (var i = 0; i < md.length; i++) {
var d = (data[i] = {});
d["id"] = i;
d[0]= md[i].Name;
d[1]= md[i].NDB_No;
d[2]= md[i].IdFdGrpFlg;
d[3]= md[i].FdGrp_CD;
}
var checkboxSelector = new Slick.CheckboxSelectColumn({
cssClass: "slick-cell-checkboxsel"
});
columns.push(checkboxSelector.getColumnDefinition());
for (var i = 0; i < colms.length; i++) {
columns.push({
id: i,
name: colms[i].name,
field: i,
sortable: true,
width:colms[i].width
});
}
grid = new Slick.Grid("#myGrid", data, columns, options);
grid.onSort.subscribe(function (e, args) {
var cols = args.sortCols;
data.sort(function (dataRow1, dataRow2) {
for (var i = 0, l = cols.length; i < l; i++) {
var field = cols[i].sortCol.field;
var sign = cols[i].sortAsc ? 1 : -1;
var value1 = dataRow1[field], value2 = dataRow2[field];
var result = (value1 == value2 ? 0 : (value1 > value2 ? 1 : -1)) * sign;
if (result != 0) {
return result;
}
}
return 0;
});
grid.invalidate();
grid.render();
});
grid.setSelectionModel(new Slick.RowSelectionModel({selectActiveRow: false}));
grid.registerPlugin(checkboxSelector);
var columnpicker = new Slick.Controls.ColumnPicker(columns, grid, options);
});
</script>
диалоговое окно вызовов функций:
function dialogUP () {
document.getElementById("dialog-form").innerHTML = '';
$("#dialog-form").dialog({
autoOpen: true,
position: { my: "right+350 bottom-100" },
width: 490,
height: 570,
resizable: false,
title: foodSourceName + ': ' + grpName,
modal: false,
open: function () {
var url = '@Url.Action("TestDialog", "TestAtida")';
url += '/?grpCD_name=' + grpCD + '=' + foodSourceType;
$(this).load(url);
},
buttons: {
'Cancel': function () {
partialFree = 0;
$(this).empty();
$(this).dialog('close');
$input.focus().select();
}
}
});
};