Extjs Gridview 不显示数据 [英] Extjs Gridview Shows No Data
问题描述
我正在尝试使用 json 在 extjs 中创建 gridview.出于某种原因,我的 gridview 没有显示任何数据.我试图用萤火虫调试它.我可以在响应"部分看到结果.这就是我在回复"中的内容.
I am trying to create a gridview in extjs using json. For some reason my gridview does not show any data. I tried to debug it with firebug. I can see the results in "Response" section. This is what I have in "Reponse".
{"ContentEncoding":null,"ContentType":null,"Data":"{ "myTable": [ { "Q1": "1", "Q2": "1", "Q3": "1", "Q4": "1", "改进": "", "评论": "1" }, { "Q1": "1", "Q2": "2", "Q3": "3", "Q4": "4", "改进": "Iphone5", "评论": "Iphone14" }, { "Q1": "1", "Q2": "1", "Q3": "3", "Q4": "3", "Improvements": "This is Comment1-3", "Comments": "This is Comment2-3" } ] }","JsonRequestBehavior":0}
{"ContentEncoding":null,"ContentType":null,"Data":"{ "myTable": [ { "Q1": "1", "Q2": "1", "Q3": "1", "Q4": "1", "Improvements": "", "Comments": "1" }, { "Q1": "1", "Q2": "2", "Q3": "3", "Q4": "4", "Improvements": "Iphone5", "Comments": "Iphone14" }, { "Q1": "1", "Q2": "1", "Q3": "3", "Q4": "3", "Improvements": "This is Comment1-3", "Comments": "This is Comment2-3" } ] }","JsonRequestBehavior":0}
更新实际上我现在在 Json 中看到了这个,但是我的 gridview 仍然是空的请点击这里查看我的 JSON
/GridViewApp.js
/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
and /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);
}
}
}
任何形式的输入都会有很大帮助...谢谢
Any kind of input will be a big help... Thank you
推荐答案
它返回一个字符串是一个很好的逻辑.
It's pretty logic that it returns a string.
您使用 json.net 序列化为字符串.然后使用 Json() 序列化该字符串.您应该只使用 json.net 序列化.
You serialize with json.net into a string. Then you serialize that string with Json(). You should only use the json.net serialization.
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
});
}
这篇关于Extjs Gridview 不显示数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!