【问题标题】:devexpress mvc gridview loading infinitedevexpress mvc gridview加载无限
【发布时间】:2014-05-22 03:01:22
【问题描述】:

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

index.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());
        }
    }
}

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

谢谢

【问题讨论】:

  • 分页工作正常吗?

标签: c# asp.net-mvc asp.net-mvc-5 devexpress-mvc


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2014-02-11
      • 2012-07-11
      • 2014-12-06
      • 2011-12-20
      • 2014-05-05
      • 1970-01-01
      • 1970-01-01
      • 2014-05-18
      • 1970-01-01
      相关资源
      最近更新 更多