0

我使用 DevExpress MVC GridView。当我在 DevExpress MVC GridView 上单击编辑、新建、删除和页面时遇到问题,gridview 显示无限加载。

索引.cshtml

@model System.Collections.IEnumerable

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

网格视图部分

@{
    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());
        }
    }
}

为什么会这样?我的问题有什么解决方案?

谢谢

4

2 回答 2

0

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

于 2014-08-18T06:55:25.793 回答
0

我想这是因为您没有从控制器中获取模型。尝试像这样更改您的 index.cshtml:

@{
    ViewBag.Title = "Index";
}
<h2>Index</h2>
@Html.Action("GridViewPartial")
于 2015-04-14T08:31:18.827 回答