Devexpress MVC gridview加载无限

本文关键字:无限 加载 gridview MVC Devexpress | 更新日期: 2023-09-27 18:04:43

我使用DevExpress MVC GridView。我有问题,当我点击编辑,新建,删除,和DevExpress MVC GridView页面,GridView显示加载,无限。

index.cshtml

@model System.Collections.IEnumerable
@{
    ViewBag.Title = "Index";
}
<h2>Index</h2>
@Html.Partial("GridViewPartial", Model)

GridViewPartial

@{
    var grid = Html.DevExpress().GridView(settings => {
        settings.Name = "GridView";
        settings.CallbackRouteValues = new { Controller = "GridView", Action = "GridViewPartial" };
        settings.SettingsEditing.AddNewRowRouteValues = new { Controller = "GridView", Action = "AddNewRecordToGrid" };
        settings.SettingsEditing.DeleteRowRouteValues = new { Controller = "GridView", Action = "DeleteRecordFromGrid" };
        settings.SettingsEditing.UpdateRowRouteValues = new { Controller = "GridView", Action = "UpdateRecordFromGrid" };
        settings.SettingsEditing.Mode = GridViewEditingMode.PopupEditForm;
        settings.SettingsEditing.PopupEditFormModal = true;
        settings.CommandColumn.ShowEditButton = true;
        settings.CommandColumn.ShowDeleteButton = true;
        settings.CommandColumn.ShowNewButton = true;
        settings.CommandColumn.Visible = true;
        settings.KeyFieldName = "CountryID";
        settings.Columns.Add("CountryCd");
        settings.Columns.Add("Description");
        settings.ClientLayout = (s, e) => {
            if (e.LayoutMode == ClientLayoutMode.Loading) {
                if (Session["GridState"] != null)
                    e.LayoutData = (string)Session["GridState"];
            } else
                Session["GridState"] = e.LayoutData;
        };
    });
    if (ViewData["EditError"] != null) {
        grid.SetEditErrorText((string)ViewData["EditError"]);
    }
}
@grid.Bind(Model).GetHtml()
控制器

using DevExpress.Web.Mvc;
using WebApplication1.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace WebApplication1.Controllers
{
    public class GridViewController : Controller
    {
        public ActionResult Index()
        {
            return View(CoreHRMDataProvider.GetEditableCountries());
        }
        public ActionResult GridViewPartial() {
            return PartialView("GridViewPartial", CoreHRMDataProvider.GetEditableCountries());
        }
        [HttpPost, ValidateInput(false)]
        public ActionResult AddNewRecordToGrid(EditableCountry country) {
            if (ModelState.IsValid) {
                try {
                    CoreHRMDataProvider.InsertCountry(country);
                } catch (Exception e) {
                    ViewData["EditError"] = e.Message;
                }
            } else
                ViewData["EditError"] = "Please, correct all errors.";
            return PartialView("GridViewPartial", CoreHRMDataProvider.GetEditableCountries());
        }
        [HttpPost, ValidateInput(false)]
        public ActionResult UpdateRecordFromGrid(EditableCountry country) {
            if (ModelState.IsValid) {
                try {
                    CoreHRMDataProvider.UpdateCountry(country);
                } catch (Exception e) {
                    ViewData["EditError"] = e.Message;
                }
            } else
                ViewData["EditError"] = "Please, correct all errors.";
            return PartialView("GridViewPartial", CoreHRMDataProvider.GetEditableCountries());
        }
        [HttpPost, ValidateInput(false)]
        public ActionResult DeleteRecordFromGrid(int countryID) {
            if (countryID >= 0) {
                try {
                    CoreHRMDataProvider.DeleteCountry(countryID);
                } catch (Exception e) {
                    ViewData["EditError"] = e.Message;
                }
            }
            return PartialView("GridViewPartial", CoreHRMDataProvider.GetEditableCountries());
        }
    }
}

为什么会发生这种情况?我的问题有什么解决办法?

谢谢

Devexpress MVC gridview加载无限

我认为你应该在布局页面上的devexpress脚本之前定义你的jquery脚本

我猜这是因为你没有从控制器获得模型。尝试更改您的索引。CSHTML:

@{
    ViewBag.Title = "Index";
}
<h2>Index</h2>
@Html.Action("GridViewPartial")