gpt4 book ai didi

c# - Kendo TabStrip 与 KendoGrid 内部使用 JavaScript 进行事件处理

转载 作者:搜寻专家 更新时间:2023-11-01 04:09:58 25 4
gpt4 key购买 nike

我有一个简单的页面,里面有 Kendo TabStrip

<div id="main-view" class="k-content">
@(Html.Kendo().TabStrip()
.Name("main-view-tabstrip")
.Items(tabstrip =>
{
tabstrip.Add().Text("My Notices").LoadContentFrom("MyNotices", "Notice").Selected(true);
}))
</div>

它按需为我加载内容,查询 NoticeControllerNoticeControllerMyNotices 操作返回我 PartialView

public PartialViewResult MyNotices()
{
// put some values into ViewData

return PartialView();
}

PartialView 本身看起来像这样:

<div style="margin: 20px; height: 700px;">
@(Html.Kendo().Grid<NoticeViewModel>(Model)
.HtmlAttributes(new { @class = "fullScreen" })
.Name("NoticesList")
.Columns(columns =>
{
columns.Bound(x => x.UniqueId).Title("UniqueId");
columns.Bound(x => x.FormName).Title("Form");
columns.Bound(x => x.Revision).Title("Revision");
columns.Bound(x => x.Language).Title("Language");
columns.Bound(x => x.Status).Title("Status");
}
)
.Pageable()
.Scrollable()
.Sortable()
.Selectable()
.ToolBar(
toolbar => toolbar.Create().Text("New")
)
.Editable(
ed => ed.Mode(GridEditMode.PopUp)
.TemplateName("NoticeCreate")
.Window(w => w.Title("Create Notice")
.Name("createNoticeWindow1")
.HtmlAttributes(new { id = "createNoticeWindow" })
.Modal(true)
)
.DisplayDeleteConfirmation(true)
)
.Resizable(resize => resize.Columns(true))
.DataSource(dataSource => dataSource.Ajax()
.PageSize(25)
.ServerOperation(true)
.Read("List", "Notice")
.Create("NoticeCreate", "Notice")
.Events(events => events.Error("errorHandler"))
.Model(model => model.Id(x => x.UniqueId))

))
</div>

<script>
function errorHandler(e) {
if (e.errors) {
var message = "Errors:\n";
$.each(e.errors, function (key, value) {
if ('errors' in value) {
$.each(value.errors, function () {
message += this + "\n";
});
}
});
alert(message);
}
}
</script>

当我运行代码时收到 JS 错误,找不到 errorHandler。如您所见,我将它放在我的 PartialView 中。

<script>
function errorHandler(e) {
if (e.errors) {
var message = "Errors:\n";
$.each(e.errors, function (key, value) {
if ('errors' in value) {
$.each(value.errors, function () {
message += this + "\n";
});
}
});
alert(message);
}
}
</script>

所以问题是当您在 TabStrip 中显示时,如何在局部 View 中使用 javascript?

当我从网格中删除 .Events(events => events.Error("errorHandler")) 时,一切正常。

最佳答案

解决了这个问题,我不知道为什么,但是当我把 java 脚本 block 放在开头时它开始工作。

因此,如果有人遇到此类问题,只需输入 <script/>声明前阻塞 Kendo.Grid() .

关于c# - Kendo TabStrip 与 KendoGrid 内部使用 JavaScript 进行事件处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15545960/

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