Kendo网格的多种模型

问题描述

我有一个像这样的模型,我通过存储过程成功地填充了它。我返回一个视图,其中有两个不同的Kendo网格。我想用successfulData填充TableNotificationModel网格。

public class NotificationModel
    {
        public List<TableNotificationModel> TableNotificationModel { get; set; }
        public List<WrongTableNotificationModel> WrongTableNotificationModel { get; set; }
    }

一个视图中,我有两个不同的Kendo网格。

@model ModelLayer.Models.NotificationModel
@addTagHelper *,Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *,Kendo.Mvc
@using Kendo.Mvc.UI
@{ ViewData["Title"] = "Index"; }

<script src="//cdnjs.cloudflare.com/ajax/libs/jszip/2.4.0/jszip.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/js/select2.min.js"></script>
<link href="https://kendo.cdn.telerik.com/2020.2.513/styles/kendo.common.min.css" rel="stylesheet" />
<link href="https://kendo.cdn.telerik.com/2020.2.513/styles/kendo.default.min.css" rel="stylesheet" />
<script src="https://kendo.cdn.telerik.com/2020.2.513/js/kendo.all.min.js"></script>
<script>
    window.rootUrl = '@Url.Content("~/")';
</script>
<h1>Upload index</h1>


<div>
    <h4>Upload file</h4>
    <form asp-controller="Upload" asp-action="Upload"
          enctype="multipart/form-data" method="post">
        <input type="file" name="file" />
        <button type="submit" id="btn">Upload</button>
    </form>

    @if (ViewBag.Message != null)
    {
<script>
        $(document).ready(function(){
            alert('@Html.Raw(ViewBag.Message)');
        });
</script>}


</div>


<div class="clearfix">
    @(Html.Kendo().Grid<ModelLayer.Models.NotificationModel>()
        .Name("successfulData")
        .ToolBar(tools => tools.Excel())
        .Pageable(pageable => pageable.Input(true).Numeric(false))
        .Scrollable()
        .sortable()
        .Filterable()
        .ColumnMenu()
        .Groupable()
        .Columns(columns =>
        {
            columns.Bound(c => c.TableNotificationModel.).Title("ID").Hidden();
            columns.Bound(c => c.TableNotificationModel.FirstOrDefault().SETTLEMENT_OBJECTID).Title("settlement code").Width("100px");
            columns.Bound(c => c.TableNotificationModel.FirstOrDefault().TECHNOLOGY_OBJECTID).Title("tech code").Width("100px");
            columns.Bound(c => c.TableNotificationModel.FirstOrDefault().UPLOAD_SPEED_CLASS_OBJECTID).Title("upload").Width("100px");
            columns.Bound(c => c.TableNotificationModel.FirstOrDefault().DOWNLOAD_SPEED_CLASS_OBJECTID).Title("download").Width("100px");
            columns.Bound(c => c.TableNotificationModel.FirstOrDefault().DATA_CATEGORY_QOS_OBJECTID).Title("data category").Width("100px");
            columns.Bound(c => c.TableNotificationModel.FirstOrDefault().SHAPE).Title("shape").Width("100px");
            columns.Bound(c => c.TableNotificationModel.FirstOrDefault().messageOut).Title("message").Width("100px");
        })
        .DataSource(dataSource => dataSource
            .Ajax()
            .PageSize(20)
            .Read(read => read.Action("Upload_Read","Upload").Data("sendAdditional"))
            )
    )

</div>
<div class="clearfix">
    @(Html.Kendo().Grid<ModelLayer.Models.NotificationModel>()
        .Name("unsuccessfulData")
        .ToolBar(tools => tools.Excel())
        .Pageable(pageable => pageable.Input(true).Numeric(false))
        .Scrollable()
        .sortable()
        .Filterable()
        .ColumnMenu()
        .Groupable()
        .Excel(excel => excel
            .FileName("file.xlsx")
            .Filterable(true)
            .ProxyURL(Url.Action("Excel_Export_Save","Upload"))
              )
        .Columns(columns =>
        {
            columns.Bound(c => c.WrongTableNotificationModel.FirstOrDefault().OPERATOR_OBJECTID).Title("ID").Hidden();
            columns.Bound(c => c.WrongTableNotificationModel.FirstOrDefault().SETTLEMENT_OBJECTID).Title("settlement code").Width("100px");
            columns.Bound(c => c.WrongTableNotificationModel.FirstOrDefault().TECHNOLOGY_OBJECTID).Title("tech code").Width("100px");
            columns.Bound(c => c.WrongTableNotificationModel.FirstOrDefault().UPLOAD_SPEED_CLASS_OBJECTID).Title("upload").Width("100px");
            columns.Bound(c => c.WrongTableNotificationModel.FirstOrDefault().DOWNLOAD_SPEED_CLASS_OBJECTID).Title("download").Width("100px");
            columns.Bound(c => c.WrongTableNotificationModel.FirstOrDefault().DATA_CATEGORY_QOS_OBJECTID).Title("data category").Width("100px");
            columns.Bound(c => c.WrongTableNotificationModel.FirstOrDefault().SHAPE).Title("shape").Width("100px");
            columns.Bound(c => c.WrongTableNotificationModel.FirstOrDefault().messageOut).Title("message").Width("100px");
        })
        .DataSource(dataSource => dataSource
            .Ajax()
            .PageSize(20)
            .Read(read => read.Action("Upload_Read","Upload").Data("sendAdditional"))
            )
    )

</div>

如何用TableNotificationModel填充一个表,而用WrongTableNotificationModel填充另一个表?我在这里FirstOrDefault()为例进行了尝试,但是我很确定它不会那样工作。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)