当前位置: 首页 > 面试题库 >

Extjs Gridview显示无数据

邓才
2023-03-14
问题内容

我正在尝试使用json在extjs中创建一个gridview。由于某种原因,我的gridview不显示任何数据。我试图用Firebug调试它。我可以在“响应”部分中看到结果。这就是我在“响应”中的内容。

{“ ContentEncoding”:null,“ ContentType”:null,“ Data”:“ {\ r \ n \” myTable
\“:[\ r \ n {\ r \ n \” Q1 \“:\” 1 \“ ,\ r \ n \“ Q2 \”:\“ 1 \”,\ r \ n \“
Q3 \”:\“ 1 \”,\ r \ n \“ Q4 \”:\“ 1 \”,\ r \ n \“改进\”:\“ \”,\ r \ n
\“评论\”:\“ 1 \” \ r \ n},\ r \ n {\ r \ n \“ Q1 \”: \“ 1 \”,\ r \ n \“ Q2
\”:\“ 2 \”,\ r \ n \“ Q3 \”:\“ 3 \”,\ r \ n \“ Q4 \”:\“ 4 \“,\ r \ n
\”改进\“:\” Iphone5 \“,\ r \ n \”评论\“:\” Iphone14 \“ \ r \ n},\ r \ n {\ r \ n
\“ Q1 \”:\“ 1 \”,\ r \ n \“ Q2 \”:\“ 1 \”,\ r \ n \“ Q3 \”:\“3 \“,\ r \ n \”
Q4 \“:\” 3 \“,\ r \ n \”改进\“:\”这是Comment1-3 \“,\ r \ n \” Comments \“:
\“这是Comment2-3 \” \ r \ n} \ r \ n] \ r \ n}“,” JsonRequestBehavior“:0}

更新 实际上我现在在Json中看到了这个,但是我的gridview仍然是空的。
请单击此处查看我的JSON。

/GridViewApp.js

Ext.define('GridViewApp.view.GridViewApp', {
alias: 'widget.gridviewapp',
width: 800,
title: 'My Grid Panel',
grid: null,
store: null,
layout: {
    type: 'anchor'
},
constructor: function () {

    this.callParent(arguments);

    var store = Ext.create('Ext.data.Store', {

        storeId: 'myData',
        scope: this,
        fields: [
        { name: 'Q1', type: 'int' },
        { name: 'Q2', type: 'int' },
        { name: 'Q3', type: 'int' },
        { name: 'Q4', type: 'int' },
        { name: 'Q5', type: 'int' },
        { name: 'Improvements', type: 'string' },
        { name: 'Comments', type: 'string' }
        ],

        sorters: [
            {
                //property: 'myData',
                direct: 'ASC'
            }
         ],

        proxy: {
            type: 'ajax',
            scope: this,
            url: 'GridView/writeRecord',
            reader: {
                type: 'json',
                root: 'myTable',
                idProperty: 'ID'

                }
        } 
    });

    store.load();   
    this.grid = Ext.create('Ext.grid.Panel', {
        title: 'GridView App',
        store: this.store,
        columns: [
            {header: 'Q1', width: 100,
        sortable: true, dataIndex: 'Q1'
                    },
        { header: 'Q2', width: 100,
            sortable: true, dataIndex: 'Q2'
        },
        { header: 'Q3', width: 100,
            sortable: true, dataIndex: 'Q3'
        },
                    { header: 'Q4', width: 100,
                        sortable: true, dataIndex: 'Q4'
                    },
                    { header: 'Improvements', width: 200,
                        sortable: true, dataIndex: 'Improvements'
                    },
                    { header: 'Comments', width: 200,
                        sortable: true, dataIndex: 'Comments'
                    }
    ],
        stripeRows: true,
        width: 800,
        renderTo: Ext.getBody()
    });
    this.add(this.grid);
}
});

和/GridViewController.cs

namespace GridViewApp.Controllers
{
public class GridViewController : Controller
{

    public ActionResult Index()
    {
        return View();
    }


    public JsonResult writeRecord()
    {

        SqlConnection conn = DBTools.GetDBConnection("ApplicationServices2");


        string sqlquery = "SELECT Q1, Q2, Q3, Q4, Improvements, Comments FROM myTable";
        SqlDataAdapter cmd = new SqlDataAdapter(sqlquery, conn);

        DataSet myData = new DataSet();
        cmd.Fill(myData, "myTable");

        conn.Open();

        conn.Close();


        string myData1 = JsonConvert.SerializeObject(myData, Formatting.Indented,
                        new JsonSerializerSettings
                        {
                            ReferenceLoopHandling = ReferenceLoopHandling.Ignore
                        });

        return Json(new { data = myData1 }, JsonRequestBehavior.AllowGet);
    }

}
}

任何形式的输入都会有很大的帮助…谢谢


问题答案:

返回一个字符串是很合理的逻辑。

您将json.net序列化为一个字符串。然后,使用Json()序列化该字符串。您应该只使用json.net序列化。

public string writeRecord()
{

    SqlConnection conn = DBTools.GetDBConnection("ApplicationServices2");


    string sqlquery = "SELECT Q1, Q2, Q3, Q4, Improvements, Comments FROM myTable";
    SqlDataAdapter cmd = new SqlDataAdapter(sqlquery, conn);

    DataSet myData = new DataSet();
    cmd.Fill(myData, "myTable");

    conn.Open();

    conn.Close();


    return myData1 = JsonConvert.SerializeObject(myData, Formatting.Indented,
                    new JsonSerializerSettings
                    {
                        ReferenceLoopHandling = ReferenceLoopHandling.Ignore
                    });

}


 类似资料:
  • 嗨,我需要同时显示xml和json数据。我可以通过JaxB在本地看到这一点,但在服务器上看不到相同的代码。当我把它部署到服务器时,我得到了这个错误。我不知道如何解决这个错误。无法解决这一点,尝试了很多但没有发生,在本地一切都很好,但当涉及到服务器它显示不同的异常。 错误500:org.springframework.web.util.NestedServletException:请求处理失败;嵌套

  • 当我试图打印我的数据集的单个列时,它显示错误 KeyError回溯(最近一次调用上次)~\anaconda3\lib\site packages\pandas\core\index\base。py in get_loc(自身、键、方法、公差)2645 try:- 熊猫库\索引。大熊猫中的pyx_图书馆。指数IndexEngine。获取_loc() 熊猫库\索引。大熊猫中的pyx_图书馆。指数Ind

  • 问题内容: 这是我学习AngularJS的第二天。我有一个我无法解决的问题。一切顺利,直到我创建了工厂。我了解工厂/服务用于重构代码。因此,我从控制器中获取了一些代码,并将其发送到工厂,以便可以加载一些数据,但是事实并非如此。这些是我的代码: index.html app.js customerController.js orders.html customerFactory.js 在Chrome

  • 我复活了一个CN1项目(已经发布),并尝试让它在Netbeans 11下的模拟器中运行(运行在OpenJdK 11上)。然而,该项目不断失败。 我更新了CN1谷歌地图扩展,刷新了libs,但问题仍然存在。 谷歌地图扩展版本是42。我该怎么做才能让一切都像以前一样运转? 任何帮助都很感激,

  • 本文向大家介绍extjs_02_grid显示本地数据、显示跨域数据,包括了extjs_02_grid显示本地数据、显示跨域数据的使用技巧和注意事项,需要的朋友参考一下 1.显示表格 2.显示本地数据 3.显示跨域jsonp数据

  • 问题内容: 与此问题类似,但我的数据集还有一个包含许多ID的附加列。每个ID的数据集的返回时间都是固定的,有些星期可能会丢失数据- 我想填写缺少的几周的值。 例如,我想要这样: 扩展为: 我已经填写了我要填写的WEEKEND_DAY(在上述情况下,从2012年1月1日至2012年1月15日,每周)的已知范围。如何执行此操作? 问题答案: 使用分区外部联接: