我想要在添加新記錄時發生「Popup」編輯,併爲「InCell」適用於所有其他編輯。我在這裏看到了使用「Popup」和「InLine」來實現這個目標的例子,但是沒有看到如何實現我想要做的事情的任何解決方案。我的Kendo網格位於Kendo彈出窗口中,我可以在打開父窗口彈出窗口之前打開「彈出窗口」編輯器,但只需要很短的時間。我讀過這個被調用,因爲子彈出窗口正在更新父彈出窗口。我的思考過程是將Kendo read()作爲子窗口的onClose事件來更新父窗口。如果有人能指出我的方向,我將不勝感激。這是我在父彈出窗口中的網格。我正在尋找一種方法來同時使用Kendo Grid的「In-Cell」和「Popup」編輯
@(Html.Kendo().Grid<DAX.Models.CsvSubmittal>()
.Name("CsvGrid")
.HtmlAttributes(new { style = "height:800px; margin-top:-90px" })
.Columns(column =>
{
column.Bound(p => p.CsvSubmittalID).Hidden();
column.Bound(p => p.SpecSection).Title("Spec Section").Width(100).Format("{0:000000}");
column.Bound(p => p.SpecTitle).Title("Spec Title").Width(150);
column.Bound(p => p.SubmittalDescription).Title("Submittal Description").Width(200);
column.Bound(p => p.Subcontractor).Title("Subcontractor").Width(150);
column.Bound(p => p.SubmissionDueDate).Title("Due Date").Width(100)
.ClientTemplate("#= SubmissionDueDateTemplate(SubmissionDueDate) #");
column.Bound(p => p.ReviewCompleteDate).Title("Complete Date").Width(100)
.ClientTemplate("#= ReviewDateTemplate(ReviewCompleteDate) #").Format("{0:MM/dd/yyyy}");
column
.Template(@<text></text>).Width(90)
.ClientTemplate("<div style='text-align:center; cursor:pointer '><a class=ActionbuttonDelete onclick=\"MyDeleteTemplate('#=CsvSubmittalID#')\">[Delete]</a></div>");
})
.Reorderable(reorder => reorder.Columns(false))
.Resizable(resize => resize.Columns(true))
.Scrollable(scrolling => scrolling.Enabled(true))
.Navigatable()
.Editable(editable => editable.Mode(GridEditMode.InCell).CreateAt(GridInsertRowPosition.Bottom))
.ToolBar(toolbar =>
{
toolbar.Custom().Text("Add New Record").Name("popup").HtmlAttributes(new { style = "font-size: 0.95em", id="popup" })/*.Url(Url.Action("CreateRow", "Project", new { projID = Model.ProjectID }))*/;
toolbar.Save();
})
.DataSource(datasource => datasource
.Ajax()
.ServerOperation(false)
//.Create(create => create.Action("CreateCsvRow", "Project", new { id = @Model.ProjectID }))
.Read(read => read.Action("GetCsvFileData", "Project", new { projectID = @Model.ProjectID }).Type(HttpVerbs.Get))
.Update(update => update.Action("UpdateCsvFileData", "Project", new { csvSubmittalID = @Model.CsvSubmittalID }))
//.Destroy(destroy => destroy.Action("DeleteCsvRow", "Project", new { csvSubmittalID = @Model.CsvSubmittalID }))
.Model(model => model.Id(p => p.CsvSubmittalID))
)
)
這裏是我的javascript函數:
var myGrid = $('#CsvGrid').data('kendoGrid').dataSource;
$("#popup").on("click", function() {
var grid = $("#CsvGrid").data("kendoGrid");
$(".k-grid-popup", grid.element).on("click", function() {
debugger;
grid.options.editable = "popup";
grid.addRow();
grid.options.editable = "incell";
});
});
function onClose(e)
{
myGrid.read();
}
我已經看到了這個成就與 「彈出」 和 「內聯」。不知道爲什麼這個替代組合的所有困難。如果有什麼辦法可以禁用父Popup上的所有監聽器,那麼也許我可以成功地允許用戶填寫新記錄,然後再調用read()...