【发布时间】:2014-01-03 17:16:22
【问题描述】:
我在我的 ASP.NET MVC 4 应用程序的 Kendo UI 窗口内使用 Kendo UI Grid。显示网格的窗口是模态的。
这是 Kendo UI 窗口的定义。
@(Html.Kendo().Window()
.Name("BackupSearchResultsPopupWindow")
.Draggable()
.Actions(actions => actions.Close())
.AutoFocus(true)
.Modal(true)
.Events(events => { events.Close("OnBackupSearchResultsPopupWindowClose"); })
.Width(600)
.Height(400)
.Title("Requestors matching your search query")
.Visible(false)
当我显示此窗口时,它显示正常,并且其中的网格有数据,但是当我尝试通过单击列标题按其任何列对网格进行排序时,网格正确地回发到其控制器操作,但是模态窗口消失了,模态窗口后面的页面也消失了,浏览器刷新到一个新页面,该页面将显示网格结果。
此外,网格结果不显示。
这是带有窗口的剃刀视图内的代码。
@(Html.Kendo().Grid<Backup>()
.Name("MatchingBackupsGrid")
.Columns(col =>
{
col.Bound(backup => backup.BackupUId).Title("UID");
col.Bound(backup => backup.BackupFirstName).Title("First Name");
col.Bound(backup => backup.BackupLastName).Title("Last Name");
})
.Pageable()
.Sortable()
.Scrollable()
.Selectable(sel =>
{
sel.Mode(GridSelectionMode.Single);
sel.Type(GridSelectionType.Row);
})
.DataSource(dataSource => dataSource
.Server()
.Read(read => read.Action("SearchForBackup", "Arr",
new { lastName = ViewBag.SearchTerm }))
.Model(model => model.Id(b => b.BackupUId)))
.BindTo(Model)
)
【问题讨论】:
-
您需要将数据源从
Server()更改为Ajax()以避免整个页面重新加载... -
我都试过了。刚好贴了一张。我也做过 Ajax,我什至删除了分页和排序并将其绑定到本地数据,即只使用了
@Html.Kendo().Grid<Foo>(Model)。但它们都产生相同的结果。
标签: asp.net-mvc asp.net-mvc-4 kendo-ui kendo-grid kendo-window