Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用AJAX在剑道网格中分组时出现Javascript错误_Javascript_Kendo Ui_Kendo Grid_Kendo Asp.net Mvc - Fatal编程技术网

使用AJAX在剑道网格中分组时出现Javascript错误

使用AJAX在剑道网格中分组时出现Javascript错误,javascript,kendo-ui,kendo-grid,kendo-asp.net-mvc,Javascript,Kendo Ui,Kendo Grid,Kendo Asp.net Mvc,在ASP.NET MVC视图中,我有一个用AJAX填充的剑道网格,当我尝试按FacturasCabecera.NFactura属性分组时,我得到了Javascript错误d.ArtFacturasCabecera未定义,因此剑道网格挂起。网格中模型的一个元素是FacturasCabecera,它是另一个模型对象,包含我想要分组的属性。网格(位于Razor视图中)的代码为: @(Html.Kendo().Grid<Macromed.Models.ArtFacturasDetalleModel

在ASP.NET MVC视图中,我有一个用AJAX填充的剑道网格,当我尝试按FacturasCabecera.NFactura属性分组时,我得到了Javascript错误
d.ArtFacturasCabecera未定义
,因此剑道网格挂起。网格中模型的一个元素是FacturasCabecera,它是另一个模型对象,包含我想要分组的属性。网格(位于Razor视图中)的代码为:

@(Html.Kendo().Grid<Macromed.Models.ArtFacturasDetalleModels>()
    .Name("GridAuditoria")
    .Columns(
        columns =>
        {
            columns.Bound(e => e.ArtFacturasCabecera.Nfactura).Title("Nro. Factura").Groupable(true);
            columns.Bound(e => e.ArtFacturasCabecera.FchFactura).Title("Fecha Factura").ClientTemplate("#= kendo.toString(kendo.parseDate(ArtFacturasCabecera.FchFactura), 'dd MMM yyyy') #").Groupable(false);
            columns.Bound(e => e.NItem).Title("Nro. Item").Groupable(false);
            columns.Bound(e => e.Codigo).Title("Código").Groupable(false);
            columns.Bound(e => e.ArtFacturasCabecera.FchPago).Title("Fecha pago").ClientTemplate("#= kendo.toString(kendo.parseDate(ArtFacturasCabecera.FchPago), 'dd MMM yyyy') #").Groupable(false);
            columns.Bound(e => e.ArtFacturasCabecera.FchVencimiento).Title("Fecha vencimiento").ClientTemplate("#= kendo.toString(kendo.parseDate(ArtFacturasCabecera.FchVencimiento), 'dd MMM yyyy') #").Groupable(false);
            columns.Bound(e => e.MontoFacturado).Title("Monto Facturado").ClientTemplate("#= kendo.toString(MontoFacturado,'c')#").Groupable(false);
            columns.Bound(e => e.AuditoriaDetalle.MontoTeorico).Title("Monto Teorico").ClientTemplate("#= kendo.toString(AuditoriaDetalle.MontoTeorico,'c')#").Groupable(false);
            columns.Bound(e => e.IdTraslado).Title("").ClientTemplate(@Html.ActionLink("Ajustar traslado", "AjustarTraslado",
            new { id = "#=IdTraslado#", idFactura = "#=IdFactura#", NItem = "#=NItem#", fechadesde = ViewBag.fechadesde, fechahasta = ViewBag.fechahasta }).ToHtmlString());
        })
    .Groupable(group => group.Enabled(true).Messages(mm => mm.Empty("Arrastre un Encabezado de Columna y Colóquela aquí para Agrupar")))
    .DataSource(
        datasource => datasource.Ajax()
                .PageSize(10)
                .Read(read => read.Action("GetFacturaAjustar", "AuditoriaTraslados", new { id = ViewBag.id, fechadesde = ViewBag.fechadesde, fechahasta = ViewBag.fechahasta }))
                .Model(model =>
                {
                    model.Id(p => p.IdFactura);
                    model.Field(p => p.ArtFacturasCabecera.FchFactura);
                }))
)
@(Html.Kendo().Grid())
.名称(“GridAuditoria”)
.栏目(
列=>
{
columns.Bound(e=>e.ArtFacturasCabecera.Nfactura).Title(“Nro.Factura”).Groupable(true);
columns.Bound(e=>e.ArtFacturasCabecera.FchFactura).Title(“Fecha Factura”).ClientTemplate(“#=kendo.toString(kendo.parseDate(ArtFacturasCabecera.FchFactura),'dd MMM yyyy'))。#;
columns.Bound(e=>e.NItem).Title(“Nro.Item”).Groupable(false);
columns.Bound(e=>e.Codigo).Title(“Código”).Groupable(false);
columns.Bound(e=>e.ArtFacturasCabecera.FchPago).Title(“Fecha pago”).ClientTemplate(“#=kendo.toString(kendo.parseDate(ArtFacturasCabecera.FchPago),‘dd MMM yyyy’)。#”可分组(false);
columns.Bound(e=>e.ArtFacturasCabecera.FchVencimiento).Title(“Fecha venciiento”).ClientTemplate(“#=kendo.toString(kendo.parseDate(ArtFacturasCabecera.FchVencimiento),‘dd MMM yyyyy’)。”可分组(false);
columns.Bound(e=>e.MontoFacturado).Title(“Monto Facturado”).ClientTemplate(“#=kendo.toString(MontoFacturado,'c')#”)。可分组(false);
columns.Bound(e=>e.AuditoriaDetalle.MontoTeorico).Title(“Monto Teorico”).ClientTemplate(“#=kendo.toString(AuditoriaDetalle.MontoTeorico,'c'))#”)。可分组(false);
columns.Bound(e=>e.IdTraslado.Title(“”).ClientTemplate(@Html.ActionLink(“AjustarTraslado”,“AjustarTraslado”),
新的{id=“#=IdTraslado”;,idFactura=“#=idFactura”;,NItem=“#=NItem”;,fechadesde=ViewBag.fechadesde,fechahahasta=ViewBag.fechahasta})。ToHtmlString();
})
.Groupable(group=>group.Enabled(true).消息(mm=>mm.Empty(“Arrastre un Encabezado de Columna y Colóquela aqípara Agrupar”))
.数据源(
datasource=>datasource.Ajax()
.页面大小(10)
.Read(Read=>Read.Action(“GetFacturaAjustar”,“AuditoriaTraslados”,new{id=ViewBag.id,fechadesde=ViewBag.fechadesde,fechahahasta=ViewBag.fechahaasta}))
.Model(Model=>
{
Id(p=>p.IdFactura);
模型场(p=>p.ArtFacturasCabecera.FchFactura);
}))
)
这是从数据库获取数据的代码,如下所示:

IQueryable<ArtFacturasDetalleModels> objfactura = from facturadet in db.ArtFacturasDetalle
  from facturacab in db.ArtFacturasCabecera
  from auditoriadet in db.AuditoriaDetalle
  from itemauditoria in db.AuditoriaDetalleItems
  where facturacab.IdFactura == facturadet.IdFactura
  && facturacab.IdFactura == auditoriadet.IdFactura &&
  facturacab.IdFactura == itemauditoria.IdFactura &&
  auditoriadet.IdAuditoria == itemauditoria.IdAuditoria &&
  facturadet.NItem == itemauditoria.NItem
  && facturacab.IdPrestador == id &&
  auditoriadet.Auditado == "S" && auditoriadet.Ajustar == "S" &&
  itemauditoria.ItemAuditado == true && itemauditoria.AjustarItem == true
  select new ArtFacturasDetalleModels
  {
      IdFactura = facturadet.IdFactura,
      NItem = facturadet.NItem,
      Codigo = facturadet.Codigo,
      MontoFacturado = facturadet.MontoFacturado,
      IdTraslado = facturadet.IdTraslado,
      ArtFacturasCabecera = new ArtFacturasCabeceraModels
      {
          IdPrestador = facturacab.IdPrestador,
          FchFactura = (DateTime)facturacab.FchFactura,
          FchPago = facturacab.FchPago,
          FchVencimiento = facturacab.FchVencimiento,
          Nfactura = facturacab.Nfactura
      },
      AuditoriaDetalle = new AuditoriaDetalleModels
      {
          IdAuditoria = auditoriadet.IdAuditoria,
          IdFactura = facturadet.IdFactura,
          MontoTeorico = auditoriadet.MontoTeorico
      }
  };
DataSourceResult result1 = objfactura.ToDataSourceResult(request1);
return Json(result1);
IQueryable objfactura=来自数据库中的facturadet.artfacturasdatalle
来自数据库中的facturacab.ArtFacturasCabecera
从db.AuditoriaDetalle中的auditoriadet
从db.AuditoriadeAlleitems中的itemauditoria
其中facturacab.IdFactura==facturadet.IdFactura
&&facturacab.IdFactura==auditoriadet.IdFactura&&
facturacab.IdFactura==itemauditoria.IdFactura&&
auditoriadet.IdAuditoria==项目Auditoria.IdAuditoria&&
facturadet.NItem==itemauditoria.NItem
&&facturacab.IdPrestador==id&&
auditoriadet.Auditado==“S”和&auditoriadet.Ajustar==“S”&&
itemauditoria.ItemAuditado==true&&itemauditoria.AjustarItem==true
选择新的ArtFacturasDetalleModels
{
IdFactura=facturadet.IdFactura,
NItem=facturadet.NItem,
Codigo=事实证明,Codigo,
Montofaturado=facturadet.montofaturado,
IdTraslado=facturadet.IdTraslado,
ArtFacturasCabecera=新的ArtFacturasCabecera模型
{
IdPrestador=facturacab.IdPrestador,
FchFactura=(日期时间)facturacab.FchFactura,
FchPago=facturacab.FchPago,
FchVencimiento=facturacab.FchVencimiento,
Nfactura=facturacab.Nfactura
},
AuditoriaDetalle=新的AuditoriaDetalleModels
{
IdAuditoria=auditoriadet.IdAuditoria,
IdFactura=facturadet.IdFactura,
蒙托托里科
}
};
DataSourceResult result1=objfactura.ToDataSourceResult(request1);
返回Json(result1);

我怀疑剑道网格无法正确处理此类模型…

在不嵌套的情况下创建新模型修复了该问题。我猜剑道网格不适用于嵌套模型。

有什么方法可以将代码缩减到相关的部分吗?我缩减了一些代码,但我仍然保留了大部分代码,以便您可以查看模型的结构。
ToDataSourceResult()
将执行组查询,检查
result1
并查看是否正确创建了模型。ToDataSourceResult正确创建了模型。您是否尝试过简化模型,但模型中没有嵌套对象?