加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – MVC 4 – Kendo Grid数据绑定

发布时间:2020-12-16 02:00:29 所属栏目:百科 来源:网络整理
导读:以下是我项目的所有内容: ControllerA public ActionResult Index(){ return View();}public ActionResult User_Read(){ ViewModels.ViewModelA objView = new ViewModels.ViewModelA(); objView.MyList = new ListViewModels.SomeClass(); objView.MyList.
以下是我项目的所有内容:

ControllerA

public ActionResult Index()
{
    return View();
}

public ActionResult User_Read()
{
    ViewModels.ViewModelA objView = new ViewModels.ViewModelA();

        objView.MyList = new List<ViewModels.SomeClass>();
        objView.MyList.Add(new ViewModels.SomeClass() { FirstName = "FN1",Supervisor = "SV1" });
        objView.MyList.Add(new ViewModels.SomeClass() { FirstName = "FN2",Supervisor = "SV2" });

        return Json(objView,JsonRequestBehavior.AllowGet);
}

ViewModelA

public class ViewModelA
{
    public List<SomeClass> MyList { get; set; }
}

public class SomeClass
{
    public string FirstName { get; set; }
    public string Supervisor { get; set; }
}

Index.cshtml

@using Kendo.Mvc.UI

@(Html.Kendo().Grid<Solution1.ViewModels.ViewModelA>()
    .Name("grid")
    .Columns(columns =>
        {
            columns.Bound(c => c.FirstName);
            columns.Bound(c => c.Supervisor);
        })
        .HtmlAttributes(new { style = "height: 380px" })
        .DataSource(dataSource => dataSource
            .Ajax()
            .Read(read => read.Action("User_Read","ControllerA"))
        )
)

详细信息:当我运行此页面时,页面加载正常且没有错误,但是,页面上没有填充任何数据.因此,网格存在,但它只显示FirstName和Supervisor的列名.我知道你不应该对数据进行硬编码,但我现在只想在网格上显示一些内容,我希望数据来自Controller.

问题:为了在网格上显示数据,我需要更改什么?此外,根据Controller中的数据,如何向网格添加多行?

更新:我最初提出的问题已部分解决.仍需要帮助才能将数据显示到网格中.

解决方法

要使代码工作,您需要做两件事.

>您需要返回一个列表(或者实际上任何支持IEnumerable接口的列表).
>您需要通过调用ToDataSourceResult来格式化返回数据.

于是

public ActionResult User_Read([DataSourceRequest]DataSourceRequest request)
    {
        var model = new List<ViewModelA>()
        {
            new ViewModelA()
            {
                FirstName = "Name",Supervisor = "Mgr",},new ViewModelA()
            {
                FirstName = "FirstName",Supervisor = "Supervisor",};

        return Json(model.ToDataSourceResult(request),JsonRequestBehavior.AllowGet);
    }

在编辑之前,其他所有内容都与原始示例中的完全相同.

查看Kendo演示解决方案并研究示例.它不是最好的布局演示,有时您需要深入挖掘源代码以确切了解发生了什么,而不仅仅是依赖于演示似乎意味着您需要的内容.例如,在通过Ajax演示填充网格演示中,由Ajax调用并返回数据的实际操作方法未在演示中显示!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读