【问题标题】:Why are kendo grid pager controls getting duplicated?为什么剑道网格寻呼机控件会重复?
【发布时间】:2018-05-23 21:49:01
【问题描述】:

我有一个非常棘手的问题。

更新剑道文件后,我的剑道网格寻呼机控件被渲染了两次。

有人对此有所了解。我正在为 ASP.NET MVC 使用剑道。Here you have an image of the grid

第二组按钮是有效的。分页数左右的按钮被屏蔽。

 @(Html.Kendo().Grid<Monibyte.Arquitectura.Presentacion.Transaccional.Dto.Tarjetas.PocMovimientosTarjeta>()
    .Name("Grid")
    .Filterable()
    .Groupable()
    .ColumnMenu()        
    .AutoBind(false)
    .Events(e => e.DataBound("OndataBound"))
    .Events(e => e.DataBinding("OnDataBinding"))
    .Reorderable(reorderable => reorderable.Columns(true))
    .Pageable(pager => pager.PageSizes(Html.DefaultPageSizes()))
    .Selectable(selectable => selectable.Mode(GridSelectionMode.Single))
    .Sortable(sortable => sortable.AllowUnsort(true).SortMode(GridSortMode.MultipleColumn))
    .Columns(columns =>
    {
        columns.Bound(p => p.IdMovimiento).Title("").Sortable(false).Filterable(false).Width(50)
            .HtmlAttributes(new { @class = "detAdic_ListMov" }).IncludeInMenu(false)
            .HeaderTemplate(Html.GridCheckAll()).ClientTemplate(Html.GridCheck() +
                Html.GenericGridBtn("IncluirDetalleMovimiento", "ConsultaMovimientos", null,
                    altText: @RecEtiquetas.App_AgregarMovimiento,
                    jsparams: new
                    {
                        targetId = "detalleMovimiento",
                        dataFunc = "editarDataFunc",
                        callback = "editarCallback"
                    },
                    imageUrl: "imagenes/iconos/list(16).png",
                    authorizeFunc: "validaSegregar").ToHtmlString())
            .HtmlAttributes(new { @class = "detAdic_ListMov", @title = @RecEtiquetas.App_AgregarMovimiento });
        columns.Bound(p => p.NumTarjeta).Title(RecEtiquetas.Mod_NumTarjeta).Hidden(true).Width(50)
            .ClientGroupHeaderTemplate("#= templateDescripcionTarjeta(value) #")
            .HtmlAttributes(new { @title = @RecEtiquetas.Mod_NumTarjeta });
        columns.Bound(p => p.NumReferencia).Title(RecEtiquetas.App_Referencia).Width(30)
            .HtmlAttributes(new { @title = @RecEtiquetas.App_Referencia });
        columns.Bound(p => p.FecMovimiento).Title(RecEtiquetas.App_FechaMovimiento).Width(40)
            .ClientTemplate("#:$monibyte.formatDate(FecMovimiento)#")
            .HtmlAttributes(new { @title = @RecEtiquetas.App_FechaMovimiento });
        columns.Bound(p => p.FecTransaccion).Title(RecEtiquetas.App_FecConsumo).Hidden(true).Width(40)
            .ClientTemplate("#:$monibyte.formatDate(FecTransaccion)#")
            .HtmlAttributes(new { @title = @RecEtiquetas.App_FecConsumo });
        columns.Bound(p => p.Descripcion).Title(RecEtiquetas.App_DescripcionMovimiento).Width(250)
            .HtmlAttributes(new { @title = @RecEtiquetas.App_Descripcion });
        columns.Bound(p => p.MonDebLocal).Title(Html.EtiquetasCompania("RecGlobalizacion", "App_DebitoMonedaLocal").ToString()).Width(40)
            .ClientTemplate("#:SimboloMonedaLocal# #:$monibyte.formatNumber(MonDebLocal)#")
            .ClientGroupFooterTemplate("#:templateMontoDebLocal(data)#")
            .FooterHtmlAttributes(new { @class = "alinearDerecha" })
            .HtmlAttributes(new { @class = "alinearDerecha monto-grid", @title = Html.EtiquetasCompania("RecGlobalizacion", "App_DebitoMonedaLocal") });
        columns.Bound(p => p.MonCredLocal).Title(Html.EtiquetasCompania("RecGlobalizacion", "App_CreditoMonedaLocal").ToString()).Width(40)
            .ClientTemplate("#:SimboloMonedaLocal# #:$monibyte.formatNumber(MonCredLocal)#")
            .ClientGroupFooterTemplate("#:templateMontoCredLocal(data)#")
            .FooterHtmlAttributes(new { @class = "alinearDerecha" })
           .HtmlAttributes(new { @class = "alinearDerecha monto-grid", @title = Html.EtiquetasCompania("RecGlobalizacion", "App_CreditoMonedaLocal") });
        columns.Bound(p => p.MonDebInter).Title(RecEtiquetas.App_DebitoDolares).Width(40)
            .ClientTemplate("#:SimboloMonedaInter# #:$monibyte.formatNumber(MonDebInter)#")
            .ClientGroupFooterTemplate("#:templateMontoDebInter(data)#")
            .FooterHtmlAttributes(new { @class = "alinearDerecha" })
            .HtmlAttributes(new { @class = "alinearDerecha monto-grid", @title = @RecEtiquetas.App_DebitoDolares });
        columns.Bound(p => p.MonCredInter).Title(RecEtiquetas.App_CreditoDolares).Width(40)
            .ClientTemplate("#:SimboloMonedaInter# #:$monibyte.formatNumber(MonCredInter)#")
            .ClientGroupFooterTemplate("#:templateMontoCredInter(data)#")
            .FooterHtmlAttributes(new { @class = "alinearDerecha" })
            .HtmlAttributes(new { @class = "alinearDerecha monto-grid", @title = @RecEtiquetas.App_CreditoDolares });
        columns.Bound(p => p.DescripcionMoneda).Title(RecEtiquetas.App_Moneda).Hidden(true).Width(40)
            .ClientGroupHeaderTemplate(RecEtiquetas.App_TotalRegistros + " #=value# = #=count#")
            .HtmlAttributes(new { @title = @RecEtiquetas.App_Moneda });
    })
    .DataSource(dataSource => dataSource
        .Ajax()
        .PageSize(Html.DefaultPageSize())
        .Sort(sort => sort.Add(p => p.FecMovimiento).Descending())
        .Aggregates(aggregates =>
        {
            aggregates.Add(p => p.MonCredLocal).Sum();
            aggregates.Add(p => p.MonDebLocal).Sum();
            aggregates.Add(p => p.MonCredInter).Sum();
            aggregates.Add(p => p.MonDebInter).Sum();
            aggregates.Add(p => p.DescripcionMoneda).Count();
            aggregates.Add(p => p.SimboloMonedaLocal).Min();
            aggregates.Add(p => p.SimboloMonedaInter).Min();
        })
        .Group(groups => groups.Add(p => p.DescripcionMoneda))
        .Read(read => read.Action("FiltrarMovimientos", "ConsultaMovimientos"))
    ))

【问题讨论】:

  • 我也遇到了同样的问题。你用的是什么剑道版本,我刚升级到2018.1.425后发现有问题。
  • 我使用的是最新版本。我不记得确切的版本。我不得不使用最后一个 2017 版本。 2018 年的版本产生了同样的问题。

标签: asp.net-mvc kendo-ui kendo-grid kendo-asp.net-mvc


【解决方案1】:

我联系了 Progress Telerik 支持,这是他们给出的答案。

我们最近收到了有关此类问题的报告。遇到它的客户已将 ASP.NET MVC 的 UI 更新到最新版本 但忘记更新 Kendo UI 脚本和 CSS 文件,反之亦然。 你能仔细检查一下你是否更新了 DLL 和 JS 和 CSS 文件?要检查页面中当前的 Kendo UI 脚本版本,您 可以调用:

console.log(kendo.version);

要检查 DLL 版本,请打开项目中的 References 文件夹, 右键单击 Kendo.Mvc 并选择属性。

两个版本必须匹配才能使小部件正常工作 正确

所以检查你的 dll 和 js/css 版本是否匹配。

【讨论】:

  • 谢谢,我解决了我的剑道版本降级到 2017 的问题,但是当我试图解决这个问题时,我检查了这些文件并更新了它们。如果将来我再次遇到错误,请尝试将剑道更新到最新版本,我会仔细检查您是否感到难过。非常感谢!
【解决方案2】:

剑道 2018.1.221 也有同样的问题。在 kendo javascript bundle 之后加载 jquery 时问题已修复

@Styles.Render("~/Content/kendo/2018.1.221/css")
@Scripts.Render("~/bundles/kendo/2018.1.221/kendoscripts")
//jquery needs to be loaded after kendo scripts
@Scripts.Render("~/bundles/jquery")

【讨论】:

  • 非常感谢!我稍后会试试这个。
  • 上述更改会在屏幕上正确加载寻呼机,但会出现 jquery 错误。经过进一步调查,该问题似乎特定于 2018.1.221。降级到 2018.1.117 或升级到最新的 2018.2.516 可以修复它。
  • 在下面查看新的(也是我的最终)答案
【解决方案3】:

我得到重复分页的原因是项目中的 Kendo.MVC.dll 与捆绑包使用的 Kendo css & scripts 版本不匹配。

删除项目中的 Kendo.Mvc dll 并从本地路径重新添加。例如。

\Telerik UI for ASP.NET MVC R2 2018\wrappers\aspnetmvc\Binaries\Mvc4Kendo.Mvc.dll

(与史蒂文·安德森的答案相同)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多