#kendo-ui #dialog #partial-views
#kendo-пользовательский интерфейс #диалоговое окно #частичные представления
Вопрос:
У меня есть, kendo dialog
который я хочу заполнить с partial view
, но это вроде как не работает. Я хочу заполнить диалоговое окно нажатием кнопки, так что вот мой код на данный момент
<div id="dialog"></div>
function showDetails(e) {
e.preventDefault();
var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
var dialog = $("#dialog");
console.log("objId", dataItem.OBJECTID1)
$.ajax({
url: '@Url.Action("SavePartial", "SettlementContract")',
data: {
id: dataItem.OBJECTID1
},
success: function (result) {
if (result != null) {
dialog.html(result);
dialog.data("kendoDialog").open();
}
}
});
}
Я попытался удалить if
условие внутри success
, на всякий случай, но это тоже не работает. Он возвращает частичное представление, но не внутри kendo dialog
, диалоговое окно даже не открывается. Что я делаю не так?
Комментарии:
1. Вы видите частичное изображение на странице? Где в вашем коде вы создаете экземпляр виджета диалога?
Ответ №1:
Мы делаем это в нашем приложении, и вот как мы его настроили (я обновил его, чтобы использовать ваш контроллер / действия / идентификаторы) — это использование ASP.NET Основные оболочки MVC:
@(Html.Kendo().Window()
.Name("dialog")
.Content("loading...")
.Draggable()
.Actions(actions => actions.Maximize().Close())
.Resizable()
.Modal(true)
.Visible(false)
.Events(e => e.Refresh("onDialogWindowRefresh"))
)
<script>
function showDetails(e) {
e.preventDefault();
var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
let win = $("#dialog").data("kendoWindow");
win.refresh({
url: "/SettlementContract/SavePartial/",
data: {
id: dataItem.OBJECTID1
}
});
}
function onDialogWindowRefresh(e) {
e.sender.center().open();
}
</script>