jQuery MiniUI

标题: 太悲催了,为什么我的datagrid数据显示不了 [打印本页]

作者: oypx1234    时间: 2012-8-10 17:50:22     标题: 太悲催了,为什么我的datagrid数据显示不了

html:

    <div id="datagrid1" class="mini-datagrid" style="width:725px;height:250px;"
        url="miniuiDataService/AjaxService.aspx?method=SearchProducts"  idField="ID"
        multiSelect="true" allowResize="true" >
        <div property="columns">            
            <div type="checkcolumn"></div>            
            <div field="Text" width="120"  allowSort="true">产品名称</div>               
            <div field="Area" width="100" allowSort="true">地区</div>            
            <div field="Amount" width="100" allowSort="true">金额</div>
            <div field="PointNo" width="100" allowSort="true">MYCARD</div>                  
            <div field="Tiem" width="100" dateFormat="yyyy-MM-dd" allowSort="true">修改日期</div>

        </div>
    </div>

    <div>

    <input type="button" value="显示Json 数据" />
    <br />
    <fieldset>
    <legend>获取json数据</legend>
    <div id="jsonData"></div>
    </fieldset>

    </div>

    <script type="text/javascript">
        mini.parse();
        var grid = mini.get("datagrid1");
        grid.load();

//showData是我用来测试返回的json数据的,返回没有错误。
function showData() {
            $.ajax({
                type: "Post",
                //发送参数,调用处理方法,返回结果,在页面显示
                url: "miniuiDataService/AjaxService.aspx/GetJson",
                contentType: "application/json;charset=utf-8",
                dataType: "json",
                //返回结果
                success: function (data) {
                    $('#jsonData').html(data.d);
                },
                error: function (err) {
                    alert(err);
                }
            })
        }

  </script>

//服务端我也写了个测试写入读取json的方法返回的json文本数据如下

{"total":2,

"data":[
{"Area":"1",
"ID":"201207181717064687",
"PointNo":"400點",
"Units":"元",
"Time":"2012-07-18T17:17:36",
"VersionType":"",
"Text":"一個遊戲帳號30天",
"IbonPrice":"",
"Name":null,
"NetCardpoint":"點",
"Amount":"250",
"AreaName":"台灣"
},
{"Area":"1",
"ID":"201207181717277187",
"PointNo":"800點",
"Units":"元",
"Time":"2012-07-18T17:17:27",
"VersionType":"",
"Text":"一個遊戲帳號90天",
"IbonPrice":"",
"Name":null,
"NetCardpoint":"點",
"Amount":"500",
"AreaName":"台灣"
}
]}


我很纳闷,我再下载的用例里边扩展,可以显示,但是在我自己的项目里边就显示不出来,js,css路径都没有错误,为什么会这样呢,哪位大侠帮帮我。





作者: niko    时间: 2012-8-10 18:04:13

用datagrid,你根本不需要自己写ajax...
不要事情复杂化啊

这里有表格分页加载的教程:
http://www.miniui.com/docs/tutorial/datagrid.html

作者: oypx1234    时间: 2012-8-10 21:40:01

niko 发表于 2012-8-10 18:04
用datagrid,你根本不需要自己写ajax...
不要事情复杂化啊

我知道不用自己写AJAX,这里的AJAX是我用来测试获取的json数据,我也是按照你们的例子来做的,在你们的例子里面我进行扩展,可以正常显示,所以我就搬来自己的项目里了,但是在我自己的项目里就显示不了,不知哪里出问题了。
作者: niko    时间: 2012-8-11 10:10:43

可能是你自己项目中编码有问题把。
作者: oypx1234    时间: 2012-8-11 13:29:41

本帖最后由 oypx1234 于 2012-8-11 13:38 编辑
niko 发表于 2012-8-11 10:10
可能是你自己项目中编码有问题把。

我的服務端代碼這樣寫的
protected void Page_Load(object sender, EventArgse)

        {

        String methodName = Request["method"];//这边断点跟踪得到SearchProducts,即我下面的方法

           Type type = this.GetType();

           MethodInfo method =type.GetMethod(methodName);

           if (method == null)throw new Exception("methodis null");

           try

           {

               method.Invoke(this, null);

           }

           catch (Exceptionex)

           {

                Hashtableresult = new Hashtable();

               result["error"] = -1;

               result["message"] =ex.Message;

               result["stackTrace"] =ex.StackTrace;

               String json = PluSoft.Utils.JSON.Encode(result);

                Response.Clear();

               Response.Write(json);

           }

           finally

           {

           }

        }

        public voidSearchProducts()

        {

           //查询条件

           string key = Request["key"];

           //分页

           int pageIndex = Convert.ToInt32(Request["pageIndex"]);

           int pageSize = Convert.ToInt32(Request["pageSize"]);

           //字段排序

           String sortField = Request["sortField"];

           String sortOrder = Request["sortOrder"];

           //业务层:数据库操作

           Hashtable result = new TestDB().SearchProducts(key,pageIndex, pageSize, sortField, sortOrder);

           //JSON

           String json = PluSoft.Utils.JSON.Encode(result);

           Response.Write(json);

        }

    }

  上面的json 可以正常返回




作者: niko    时间: 2012-8-11 19:22:13

那应该没有问题。
你可以把生成的JSON拷贝到一个静态的txt文件,datagrid的url指向这个txt。
如果能正常显示,动态的话也可以。
作者: oypx1234    时间: 2012-8-12 10:50:18

niko 发表于 2012-8-11 19:22
那应该没有问题。
你可以把生成的JSON拷贝到一个静态的txt文件,datagrid的url指向这个txt。
如果能正常显 ...

哦,谢谢你,我试看看,我有生成txt文件,但我都忘记了可是使用url指向txt文件测试一下,谢谢,明天测试看看。
作者: oypx1234    时间: 2012-8-13 10:25:35

niko 发表于 2012-8-11 19:22
那应该没有问题。
你可以把生成的JSON拷贝到一个静态的txt文件,datagrid的url指向这个txt。
如果能正常显 ...

太奇怪了,用url指向生成的txt文件可以显示,可是用页面+方法名竟然不可以。
作者: niko    时间: 2012-8-13 13:52:59

肯定是可以的。
你这样做:先基于官方DEMO,实现后台交出。
然后,新建一个项目,把代码考虑进去,没有理由产生不了JSON。
miniui与后台唯一的关系,就是要求后台生成JSON数据。
作者: oypx1234    时间: 2012-8-13 16:39:50

niko 发表于 2012-8-13 13:52
肯定是可以的。
你这样做:先基于官方DEMO,实现后台交出。
然后,新建一个项目,把代码考虑进去,没有理由 ...

我在官方DEMO里面实现可以实现,自己项目里也可以生成json但是前台还是不行,

我现在把它分离出来新建一个项目,还是不行,源码在这边,要不你帮我看下,非常感谢[attach]343[/attach]



作者: niko    时间: 2012-8-13 16:43:57

把Default.aspx里面的东西,参照AjaxService.aspx。

作者: oypx1234    时间: 2012-8-13 16:49:53

niko 发表于 2012-8-13 16:43
把Default.aspx里面的东西,参照AjaxService.aspx。

谢谢,终于可以了,为什么要这样写呢?
作者: niko    时间: 2012-8-13 17:07:37

返回JSON的适合,不需要页面其他内容,否则会破坏JSON的完整性。
作者: onlysam    时间: 2012-11-20 13:08:38

oypx1234 发表于 2012-8-13 16:39
我在官方DEMO里面实现可以实现,自己项目里也可以生成json但是前台还是不行,

我现在把它分离出来新建一 ...

我也是10次里8次显示不出来!
拷贝在txt可以
在后台以json返回的不行 !
无奈~~~
作者: factory    时间: 2012-11-20 14:38:08

onlysam 发表于 2012-11-20 13:08
我也是10次里8次显示不出来!
拷贝在txt可以
在后台以json返回的不行 !

在ashx里面加上String name = context.Request["name"];这一行代码试试




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2