简体   繁体   English

EXTJS 4 网格的问题

[英]Problem with EXTJS 4 Grid

I am trying to load a JSON string into an EXTJS grid.我正在尝试将 JSON 字符串加载到 EXTJS 网格中。 The error i am getting is Uncaught TypeError: Cannot read property 'prototype' of undefined from ext-all-debug.js.我得到的错误是Uncaught TypeError: Cannot read property 'prototype' of undefined from ext-all-debug.js。

Here is my code for the js file.这是我的js文件代码。

$(document).ready(function () {
    var store = new Ext.data.Store(
    {
        proxy: new Ext.data.HttpProxy(
            {
                url: 'http://localhost:3197/Home/GetSecondaryOfferings'
            }),
        reader: new Ext.data.JsonReader(
            {
                root: 'items',
                totalProperty: 'totalCount',
                id: 'id',
                fields: [{name:'CUSIP', mapping: 'CUSIP'},'DESCRIPTION','COUPONRATE','ASKPRICE']
            })
    });
    store.load();

  var grid = new Ext.grid.GridPanel({
     store: store,
     columns: [
        { header: 'CUSIP', dataIndex: 'CUSIP'},
        { header: 'Description', dataIndex: 'DESCRIPTION', width: 100 },
        { header: 'COUPONRATE', dataIndex: 'COUPONRATE', width: 100 },
        { header: 'ASKPRICE', dataIndex: 'ASKPRICE', width: 100 }
     ],
     renderTo: 'example-grid2',
     width: 1000,
     autoHeight: true,
     title: 'Employees'
  });   
});

Here is a sample of the JSON file that is returned, it does get returned....这是返回的 JSON 文件的示例,它确实返回了....

{"items":[{"CUSIP":"989701AL1","DESCRIPTION":"ZIONS BANCORPORATIONSB NT 5.65000% 05/15/2014","COUPONRATE":"  5.650","ASKPRICE":"    104.450"}],"totalCount":3316}

For good measure, here is the.cshtml file.为了更好地衡量,这里是 .cshtml 文件。 I am using ASP MVC.我正在使用 ASP MVC。

@{
    ViewBag.Title = "About Us";
}

<h2>About</h2>
<p></p>
  @section JavaScript
  {
     <link href ="@Url.Content("~/Content/resources/css/ext-all.css")" rel="Stylesheet" type="text/css"/>
 <link rel="stylesheet" type="text/css" href=@Url.Content("~/Content/resources/css/ext-all.css") /> 
    <link rel="stylesheet" type="text/css" href=@Url.Content("~/Content/examples/shared/example.css") /> 
    <script type="text/javascript" src=@Url.Content("~/Content/bootstrap.js")></script> 


      <script type="text/javascript" src=@Url.Content("~/Content/examples/grid/FIO8472-JSON.js")></script> 
     }
<div id="example-grid"></div> 
<div id="example-grid2"></div> 

Any Help is appreciated.任何帮助表示赞赏。

You are launching the javascript code using jQuery.您正在使用 jQuery 启动 javascript 代码。 ExtJS has its own code launcher. ExtJS 有自己的代码启动器。 Your code needs to be within onReady() method.您的代码需要在onReady()方法中。

Example:例子:

Ext.onReady(function() {
    var store = new Ext.data.Store(
    .
    .
    . // rest of your code
}); 

Since you are using ExtJs4, try the new MVC application architecture as well.由于您使用的是 ExtJs4,因此也请尝试新的MVC 应用程序架构

your store need a model您的商店需要 model
like this:像这样:

Ext.define('AM.model.User', {
    extend: 'Ext.data.Model',
    fields: ['id', 'name', 'email']
});

look a this exemple of the New store définition in extjs 4 '( from simple app example) and try use MVC application architecture在 extjs 4 '(来自简单的应用程序示例)中查看新商店定义的示例,并尝试使用 MVC 应用程序架构

Ext.define('AM.store.Users', {
    extend: 'Ext.data.Store',
    model: 'AM.model.User',
    autoLoad: true,

    proxy: {
        type: 'ajax',
        api: {
            read: 'data/users.json',
            update: 'data/updateUsers.json'
        },
        reader: {
            type: 'json',
            root: 'users',
            successProperty: 'success'
        }
    }
});

hope that help希望有帮助

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM