0

JSON文字列をEXTJSグリッドにロードしようとしています。私が得ているエラーはUncaught TypeError: Cannot read property 'prototype' of undefinedext-all-debug.jsからのものです。

これが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'
  });   
});

返されるJSONファイルのサンプルを次に示します。返されます。

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

適切な方法として、ここに.cshtmlファイルがあります。ASPMVCを使用しています。

@{
    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> 

どんな助けでも大歓迎です。

4

2 に答える 2

1

jQueryを使用してJavaScriptコードを起動しています。ExtJSには独自のコードランチャーがあります。コードはonReady()メソッド内にある必要があります。

例:

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

ExtJs4を使用しているので、新しいMVCアプリケーションアーキテクチャも試してください。

于 2011-05-05T13:04:08.250 に答える
0

あなたの店は
このようなモデルを必要としています:

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

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'
        }
    }
});

助けてくれることを願っています

于 2011-05-12T23:11:00.407 に答える