Extjs获取后台数据

时间:2022-11-26 14:17:47
我写了个简单的grid,后台能正常获取数据,但是前台无法获得
后台代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace test
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            DataClassesDataContext db=new DataClassesDataContext ();
            var query = from p in db.newpo select new { p.new_poid, p.new_subject, createdon=p.createdon.ToString()}; 
            string josn = query.ToJSON();
            Response.Write(josn);
        }
    }
}

数据在页面上打印出来为:
[{"new_poid":"000dabf7-e3b3-df11-8580-0003ff1da946","new_subject":"有方案活动","createdon":"08 30 2010 3:09AM"},{"new_poid":"109a3a27-d8b4-df11-8580-0003ff1da946","new_subject":"test--ssss","createdon":"08 31 2010 8:17AM"},{"new_poid":"70015047-a6bc-df11-920c-0003ff1da946","new_subject":"test-09-10","createdon":"09 10 2010 6:40AM"}]
前台代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>test</title>
<!--    <meta http-equiv="Content-Type" content="text/html; charset="UTF-8" />-->
    <link href="Css/ext-all.css" rel="stylesheet" type="text/css" />
    <script src="Script/ext-base.js" type="text/javascript"></script>
    <script src="Script/ext-all.js" type="text/javascript"></script>
    <script type="text/javascript">
        Ext.onReady(function() {
           var ds= new Ext.data.JsonStore({
                url:'Default.aspx',
                autoLoad:true,
                    fields: [
                { name: 'new_poid' },
                { name: 'new_subject' },
                { name: 'createdon' }
            ]
                    
                });
            var grid = new Ext.grid.GridPanel({
                loadMask: { msg: '正在加载数据,请稍侯……' },
                renderTo: 'grid',
                height: 250,
                store:ds,
                width: 350,
                colModel: new Ext.grid.ColumnModel([
            { header: '编号', dataIndex: 'new_poid' },
            { header: '名称', dataIndex: 'new_subject' },
            { header: '日期', dataIndex: 'createdon' }
        ])
                
            });
        })
    
    </script>
</head>
<body>
    <div id="grid"></div>  
</body>
</html>


运行后显示不出数据,也不报错,我把后台的数据直接在前台赋值是可以显示的,说明后台数据格式没错,但是就是不能正常获取,请求帮助

17 个解决方案

#1


ext你都发4帖了。没几个人回的,你居然还坚持,支持关注!楼主佩服你的精神!

#2


现在EXTJS没人用了?

#3


后台返回的是一个对象数组,那里EXT前台部分的回调函数在哪里呢?

#4


先判断 load了吗??
观察下后台ajax是否运行了
ajax运行了的话 返回的数据正确吗

不行就强制调用 ds.load();

#5


引用 2 楼 tcqfc88 的回复:
现在EXTJS没人用了?


  不是没人用。而是用的相对少,EXT,DOJO高手都要忙项目,哪有时间帮你回帖呢?对吧!

#6


引用 3 楼 falizixun2 的回复:
后台返回的是一个对象数组,那里EXT前台部分的回调函数在哪里呢?

我看了许多示例,差不多都是这么写的,没用到回调函数啊

#7


引用 4 楼 kk3k2005 的回复:
先判断 load了吗??
观察下后台ajax是否运行了
ajax运行了的话 返回的数据正确吗

不行就强制调用 ds.load();

我强制调用ds.load()也没用,还是没数据
后台如何看ajax是否运行呢?

#8


引用 7 楼 tcqfc88 的回复:
引用 4 楼 kk3k2005 的回复:
先判断 load了吗??
观察下后台ajax是否运行了
ajax运行了的话 返回的数据正确吗

不行就强制调用 ds.load();

我强制调用ds.load()也没用,还是没数据
后台如何看ajax是否运行呢?

    推荐你这个问题还是到EXT官方论坛问,或者到国外论坛用英文去问比较好!但是要求会基本语法的英文。不然老外都不知道俺在说什么!

#9



      var ds= new Ext.data.JsonStore({
               url:'Default.aspx',
                autoLoad:true,
                    fields: [
                { name: 'new_poid' },
                { name: 'new_subject' },
                { name: 'createdon' }
            ]
      });

怎么没有看见root,totalProperty 这些属性呢

老伙计我在弄这个,对EXTJS是十分的热爱,能在站内留下你的QQ么,一起学吧,这是我在cnblogs上的blog
www.cnblogs.com/yql1986

#10


引用 9 楼 yql1986 的回复:
JScript code

      var ds= new Ext.data.JsonStore({
               url:'Default.aspx',
                autoLoad:true,
                    fields: [
                { name: 'new_poid' },
           ……


没有root,totalProperty 也行的啊

#11


[{"new_poid":"000dabf7-e3b3-df11-8580-0003ff1da946","new_subject":"有方案活动","createdon":"08 30 2010 3:09AM"},{"new_poid":"109a3a27-d8b4-df11-8580-0003ff1da946","new_subject":"test--ssss","createdon":"08 31 2010 8:17AM"},{"new_poid":"70015047-a6bc-df11-920c-0003ff1da946","new_subject":"test-09-10","createdon":"09 10 2010 6:40AM"}]

我直接用的是你上面的数据.

grid生成的很好啊,没有一点问题,ff和ie下都ok的.(我的ext3.3.1)

估计是你直接拿别人的代码再用,应该是你没有改ext路径

#12


可能你返回的JSON格式有特殊字符,ExtJs无法解析。
先用固定的数据试试,脚本没问题。

#13


fields: [
{ name: 'new_poid' },

没有mapping

fields: [
{ name: 'new_poid',mapping:'new_poid' },

#14


引用 12 楼 leefwu 的回复:
可能你返回的JSON格式有特殊字符,ExtJs无法解析。
先用固定的数据试试,脚本没问题。


我也认同有可能是特殊字符影响的,楼主可先把值里面的":"号去掉试试。
另请教12楼的朋友,如果是存在特殊字符的话,应该如何处理?如有例子的话,也麻烦贴出来,学习学习!
谢谢!

#15


引用 13 楼 cppvip 的回复:
fields: [
{ name: 'new_poid' },

没有mapping

fields: [
{ name: 'new_poid',mapping:'new_poid' },

或者
fields:['new_poid','new_subject','createdon']

#16


沒有totalProperty 可以,但是看那個json,没有根啊,没有root好像不可以,你得到的json怎么解析呢。樓主用那個firedebug看看返回到客戶端的ajax中有無異常,我覺得是格式問題而已。你把CS中加一個根看看。
引用 10 楼 shuixiya1999 的回复:
引用 9 楼 yql1986 的回复:

JScript code

var ds= new Ext.data.JsonStore({
url:'Default.aspx',
autoLoad:true,
fields: [
{ name: 'new_poid' },
……


没有root,totalProperty 也行的啊

#17


我一直用xml返回数据。

#1


ext你都发4帖了。没几个人回的,你居然还坚持,支持关注!楼主佩服你的精神!

#2


现在EXTJS没人用了?

#3


后台返回的是一个对象数组,那里EXT前台部分的回调函数在哪里呢?

#4


先判断 load了吗??
观察下后台ajax是否运行了
ajax运行了的话 返回的数据正确吗

不行就强制调用 ds.load();

#5


引用 2 楼 tcqfc88 的回复:
现在EXTJS没人用了?


  不是没人用。而是用的相对少,EXT,DOJO高手都要忙项目,哪有时间帮你回帖呢?对吧!

#6


引用 3 楼 falizixun2 的回复:
后台返回的是一个对象数组,那里EXT前台部分的回调函数在哪里呢?

我看了许多示例,差不多都是这么写的,没用到回调函数啊

#7


引用 4 楼 kk3k2005 的回复:
先判断 load了吗??
观察下后台ajax是否运行了
ajax运行了的话 返回的数据正确吗

不行就强制调用 ds.load();

我强制调用ds.load()也没用,还是没数据
后台如何看ajax是否运行呢?

#8


引用 7 楼 tcqfc88 的回复:
引用 4 楼 kk3k2005 的回复:
先判断 load了吗??
观察下后台ajax是否运行了
ajax运行了的话 返回的数据正确吗

不行就强制调用 ds.load();

我强制调用ds.load()也没用,还是没数据
后台如何看ajax是否运行呢?

    推荐你这个问题还是到EXT官方论坛问,或者到国外论坛用英文去问比较好!但是要求会基本语法的英文。不然老外都不知道俺在说什么!

#9



      var ds= new Ext.data.JsonStore({
               url:'Default.aspx',
                autoLoad:true,
                    fields: [
                { name: 'new_poid' },
                { name: 'new_subject' },
                { name: 'createdon' }
            ]
      });

怎么没有看见root,totalProperty 这些属性呢

老伙计我在弄这个,对EXTJS是十分的热爱,能在站内留下你的QQ么,一起学吧,这是我在cnblogs上的blog
www.cnblogs.com/yql1986

#10


引用 9 楼 yql1986 的回复:
JScript code

      var ds= new Ext.data.JsonStore({
               url:'Default.aspx',
                autoLoad:true,
                    fields: [
                { name: 'new_poid' },
           ……


没有root,totalProperty 也行的啊

#11


[{"new_poid":"000dabf7-e3b3-df11-8580-0003ff1da946","new_subject":"有方案活动","createdon":"08 30 2010 3:09AM"},{"new_poid":"109a3a27-d8b4-df11-8580-0003ff1da946","new_subject":"test--ssss","createdon":"08 31 2010 8:17AM"},{"new_poid":"70015047-a6bc-df11-920c-0003ff1da946","new_subject":"test-09-10","createdon":"09 10 2010 6:40AM"}]

我直接用的是你上面的数据.

grid生成的很好啊,没有一点问题,ff和ie下都ok的.(我的ext3.3.1)

估计是你直接拿别人的代码再用,应该是你没有改ext路径

#12


可能你返回的JSON格式有特殊字符,ExtJs无法解析。
先用固定的数据试试,脚本没问题。

#13


fields: [
{ name: 'new_poid' },

没有mapping

fields: [
{ name: 'new_poid',mapping:'new_poid' },

#14


引用 12 楼 leefwu 的回复:
可能你返回的JSON格式有特殊字符,ExtJs无法解析。
先用固定的数据试试,脚本没问题。


我也认同有可能是特殊字符影响的,楼主可先把值里面的":"号去掉试试。
另请教12楼的朋友,如果是存在特殊字符的话,应该如何处理?如有例子的话,也麻烦贴出来,学习学习!
谢谢!

#15


引用 13 楼 cppvip 的回复:
fields: [
{ name: 'new_poid' },

没有mapping

fields: [
{ name: 'new_poid',mapping:'new_poid' },

或者
fields:['new_poid','new_subject','createdon']

#16


沒有totalProperty 可以,但是看那個json,没有根啊,没有root好像不可以,你得到的json怎么解析呢。樓主用那個firedebug看看返回到客戶端的ajax中有無異常,我覺得是格式問題而已。你把CS中加一個根看看。
引用 10 楼 shuixiya1999 的回复:
引用 9 楼 yql1986 的回复:

JScript code

var ds= new Ext.data.JsonStore({
url:'Default.aspx',
autoLoad:true,
fields: [
{ name: 'new_poid' },
……


没有root,totalProperty 也行的啊

#17


我一直用xml返回数据。