KendoGrid MVC-数据源设置不正确

时间:2018-08-06 19:20:57

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

我有这个网格:

@(Html.Kendo().Grid<SVD.Web.Areas.Caracteristiques.Models.SegmentViewModel>()
.Name("grdRechercheCarac")
.Scrollable()
.Selectable(selectable => selectable
.Mode(GridSelectionMode.Single)
.Type(GridSelectionType.Row))
.Columns(columns =>
{
columns.Bound(c => c.EnteteGroupeDt).ClientGroupHeaderTemplate("#= dtGroupHeaderText(value)#").Hidden(true);
columns.Bound(c => c.EnteteGridGroupeRtssDirection).ClientGroupHeaderTemplate("#= rtssGroupHeaderText(value)#").Hidden(true);
columns.Bound(c => c.EnteteGridGroupSequenceur).ClientGroupHeaderTemplate("#= sequenceurGroupHeaderText(value)#").Hidden(true);

columns.Bound(c => c.SegmentId).ClientTemplate("#= SegmentId#").Title("Id").Hidden(true);
columns.Bound(c => c.SequenceurId).ClientTemplate("#: SequenceurId #").Title("SequenceurId").Hidden(true);
columns.Bound(c => c.Voie).ClientTemplate("#= Voie #").Title("Voie").Hidden(true);
columns.Bound(c => c.Direction).ClientTemplate("#= Direction #").Title("Direction").Hidden(true);
columns.Bound(c => c.Rtss).ClientTemplate("#= Rtss #").Hidden(true);
columns.Bound(c => c.ChainageDebut).ClientTemplate("#:ChainageDebut#").Title("Chainage début");
columns.Bound(c => c.ChainageFin).ClientTemplate("#:ChainageFin#").Title("Chainage fin");
columns.Bound(c => c.Longueur).ClientTemplate("#:Longueur#").Title("Longueur");
columns.Bound(c => c.TypeRevetementId).ClientTemplate("#: TypeRevetementId #").Hidden(true);
columns.Bound(c => c.TypeRevetementNom).ClientTemplate("#: TypeRevetementNom #").Title("Revêtement");
columns.Bound(c => c.IdRtss).ClientTemplate("#: IdRtss #").Hidden(true);
columns.Bound(c => c.CodeDt).ClientTemplate("#: CodeDt #").Hidden(true);
columns.Bound(c => c.Dt).ClientTemplate("#: Dt #").Hidden(true);
columns.Bound(c => c.SequenceurNom).ClientTemplate("#: SequenceurNom #").Hidden(true);
columns.Bound(c => c.IdDerniereModif).ClientTemplate("#: IdDerniereModif #").Hidden(true);
columns.Bound(c => c.LibConfigIriId).ClientTemplate("#: LibConfigIriId #").Hidden(true);
columns.Bound(c => c.LibConfigIriNom).ClientTemplate("#: LibConfigIriNom #").Hidden(true);
columns.Bound(c => c.LibConfigOrnId).ClientTemplate("#: LibConfigOrnId #").Hidden(true);
columns.Bound(c => c.LibConfigOrnNom).ClientTemplate("#: LibConfigOrnNom #").Hidden(true);
columns.Template(@<text>custom</text>).ClientTemplate("<button title='Afficher les données à valider' class='btn btn-danger'>Données à valider.</button>").Title("Reste à valider").Hidden(true);
columns.Template(@<text>custom</text>).ClientTemplate(
        "<button title='Afficher les graphiques' onClick='boutonAfficherGraphique(event)' class='btn btn-default btnAfficherGraphique'><span class='glyphicon glyphicon-zoom-in'></span></button>" +
        "<button type='button'  title='Afficher le séquenceur sur la carte' onClick='cliquerAfficherCarteSequenceur(event)' class='btn btn-default' id='btnTraceGPSCarac' style='margin-left:10px;'><span class='glyphicon glyphicon-globe'></span></button>" +
        "<button type='button' class='btn btn-default' style='margin-left:10px;' onClick='btnAfficherDetailTrace(this)' title=\"Détails de l\'essai\"><span class='glyphicon glyphicon-list-alt'></span></button>" +
        "<button title=\"Afficher les images de l\'essai\"onClick='boutonAfficherImages(event)' class='btn btn-default imagesResultatsRecherche' style='margin-left:10px;'><span class='glyphicon glyphicon-film'></span></button>"
    ).Title("Actions");
})
.NoRecords(Constants.KENDO_GRID_NO_RECORDS)
.Sortable()
.AutoBind(false)
.DataSource(dataSource => dataSource
    .Ajax()
    .Sort(x => x.Add("ChainageDebut").Ascending())
    .Group(groups => { groups.Add(p => p.EnteteGroupeDt) ; groups.Add(p => p.EnteteGridGroupeRtssDirection); groups.Add(p => p.EnteteGridGroupSequenceur); })        
    .Model(model => model.Id(p => p.Id))
    .Read(read => read.Action("ObtenirResultatsRecherche", "Caracteristiques", new { area = Constants.AREA_CARACTERISTIQUES }).Type(HttpVerbs.Get))
    .Events(e => e.Change("changementResultatsRecherche")
    )
)
.Events(e => e.DataBound("GetHistorique"))
)

当我尝试通过Jquery读取数据源时,它什么都不做:

$("#grdRechercheCarac").data("kendoGrid").dataSource.read();

我试图检查kendoGrid的外观:

var datasource = $("#grdRechercheCarac").getKendoGrid();

当我在devTools调试器中查看此内容时,发现数据源成员根本不符合我最初的kendoGrid中的规范:我没有设置“组”,没有“读取”操作,也没有“排序” ”。但是KendoGrid的列和其他常规选项都可以。

Image of devTools Debugger

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

好吧,我回答了自己。我正在使用一些现有代码,由于一个完全未知的原因,该页面的JS文件开头有以下代码:

var grid = $("#grdRechercheCarac").data("kendoGrid");
grid.setDataSource(newDataSource);

因此,这是将数据源重置为默认格式。