1

Ich bekomme einen Fehler beim Versuch, ein Infragistics-Raster zu rendern und ich kann die Ursache dafür nicht finden, googelte es, suchte Foren etc ... Unbehandelte Ausnahme in Zeile 1423, Spalte 16 in Eval-Code '0x800a01b6 - JavaScript-Laufzeitfehler: Objekt unterstützt keine Eigenschaft oder Methode' igGrid 'aufgetreten' in einer Laufzeit generierte Datei namens Eval-Code: $ (function() {$ ('# FileContent'). igGrid ({dataSource: {"Records": [{"Id": 0, "Feld ... etc Ich habe versucht, eine Sammlung anstelle des GridModel, das gleiche Ergebnis. Wo ist mein Fehler? Infragistics will Geld von mir zu Beantworten Sie die Fragen ... Ich verwende Visual Studio 2017 und es ist ein ASP.NET MVC 4-Projekt.Die Controller-Antwort funktioniert O K, tritt der Fehler auf, wenn der Client versucht, das Raster zu rendern.Objekt unterstützt keine Eigenschaft oder Methode 'igGrid' aufgetreten

Bitte helfen!

Vielen Dank!

Meine Modelle:

public class SasFileViewModel 
{ 
    public int Id { get; set; } 

    [Display(Name = "File Name")] 
    public string Name { get; set; } 

    [Display(Name = "File Path")] 
    public string Path { get; set; } 

    public string Header { get; set; } 

    public virtual List<SasFileLine> Content { get; set; } 
} 

public class SasFileLine 
{ 
    public int Id { get; set; } 
    public List<string> Fields { get; set; } 
} 

public class SasFileListViewModel 
{ 
    [Display(Name = "File Id")] 
    public int SelectedFileId { get; set; } 
    public SelectList SasFiles { get; set; } 
} 

My Controller:

public ActionResult SelectedSasFile(int selectedFileId) 
    { 
     if (!ModelState.IsValid) 
      return View(); 

     var model = GetSasFile(selectedFileId); 
     return PartialView(model); 
    } 

    private GridModel GetSasFile(int selectedFileId) 
    { 
     var sasFile = new SasFileViewModel() 
     { 
      Id = 0, 
      Content = new List<SasFileLine>() 
     }; 

     var sasFileDtoList = SasAsp.BusinessLibrary.SasFile.GetSasFiles().ToList(); 
     if (sasFileDtoList != null && sasFileDtoList.Count > 0) 
     { 
      var dto = sasFileDtoList.Where(x => x.Id == selectedFileId).First(); 

      var fileName = Path.Combine(dto.Path, dto.Name); 
      var sasFileDto = SasAsp.BusinessLibrary.SasFile.GetSasFile(fileName); 

      sasFile = MapToModel(sasFileDto); // just maps data transfer objects to the model 
     } 

     var fileContentGrid = CreateGrid(sasFile); 
     return fileContentGrid; 
    } 

    private static GridModel CreateGrid(SasFileViewModel sasFile) 
    { 
     var fileContentGrid = new GridModel 
     { 
      ID = "FileContent", 
      DataSource = sasFile.Content.ToList().AsQueryable(), 
      AutoGenerateColumns = true 
     }; 

     return fileContentGrid; 
    } 

My Teilansicht für das Raster:

@using Infragistics.Web.Mvc 
@using SasAspMvc.Models 
@model GridModel 

<link href="~/IgniteUI/css/structure/infragistics.css" rel="stylesheet" /> 
<link href="~/IgniteUI/css/themes/infragistics/infragistics.theme.css" rel="stylesheet" /> 

<script type="text/javascript" src="~/IgniteUI/js/infragistics.core.js"></script> 
<script type="text/javascript" src="~/IgniteUI/js/infragistics.lob.js"></script> 

@(Html.Infragistics().Grid(Model)) 

My-Übersicht:

@using SasAspMvc.Models 
@model SasFileListViewModel 

@{ 
    ViewBag.Title = "SAS Files"; 
} 

<h2>@ViewBag.Title.</h2> 

@{Html.RenderPartial("SasFileList", Model); } // This renders a combo box with a list of existing files too choose from 

<table id="FileContent" style="white-space: pre-line"></table> 

<script type="text/javascript"> 
$(document).ready(function() { 
    $("#SelectedFileId").on("change", function() { 
     var id = $('#SelectedFileId').val(); 
     showSelectedFile(id); 
    }); 
}); 

function showSelectedFile(id) { 
    $("#FileContent").html('<b>Please wait...</b>'); 
    //debugger; 
    $("#FileContent").load('@(Url.Action("SelectedSasFile", "SasFiles", null, Request.Url.Scheme))?selectedFileId=' + id); 

} 

+1

Vielen Dank, Konstantin. Ich habe diese bereits vorher aufgenommen. Das Problem wird nun gelöst, indem eine weitere Version von jQuery hinzugefügt wird, die anscheinend von Infragistics benötigt wird. Am Ende scheint sich alles um eine korrekte Installation des Infragistics Ignite UI Plug-Ins für Visual Studio zu drehen. – Cristian

Antwort

0

Sie sollten jQuery und jQuery UI vor den Skripten core und lob von Ignite UI einschließen.

<script 
    src="https://code.jquery.com/jquery-3.2.1.min.js" 
    integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" 
    crossorigin="anonymous"></script> 
<script 
    src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js" 
    integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" 
    crossorigin="anonymous"></script> 
Verwandte Themen