asp.net中的JqGrid没有绑定

时间:2011-09-14 11:21:24

标签: asp.net jqgrid jqgrid-asp.net

我正在尝试在asp.net中实现jqGrid。

这是我的代码。

    <script type="text/javascript" src="../js/i18n/grid.locale-en.js"></script>
    <script type="text/javascript" src="../js/jquery.jqGrid.min.js"></script>
    <script type="text/javascript" src="../js/jquery.jqGrid.src.js"></script>
    <script src="../js/plugins/grid.postext.js" type="text/javascript"></script>


     <script type="text/javascript">
    $(document).ready(function(){
    jQuery("#tdList").jqGrid({
    type: "POST",
        datatype: function() {
            $.ajax
            ({

                url: "WebService1.asmx/GetDataFromDB",
                 data: "{}",
                datatype: 'json',
                contentType: "application/json; charset=utf-8",


            });
        },

        height: "100%",
        width: "100%",
        forceFit: true,
        colNames: ['EmpID', 'Name', 'MGR'],
        colModel: [
                    { name: 'EmpID', index: 'EmpID', key: true, hidden: true },
                    { name: 'Name', index: 'Name', width: 100 },
                    { name: 'MGR', index: 'MGR', width: 100 }
                  ],
        rowNum: 10,
        rowList: [5, 10, 15],
        pager: $('#pager'),
        sortname: 'EmpID',
        viewrecords: true,
        sortorder: "desc",
        caption: "Customer List"



    }).navGrid('#pager', { del: false, add: false, edit: false });
    });

,背后的代码是

namespace JqGrid_App{    
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]

[System.Web.Script.Services.ScriptService]
public class WebService1 : System.Web.Services.WebService
{

    [WebMethod]
    public string HelloWorld()
    {
        return "Hello World";
    }

    [WebMethod(EnableSession = false)]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = true)]
    public string GetDataFromDB()
    {
        _Default OGetData = new _Default();
       return  OGetData.GetDataFromDB();
    }
}}

返回的JSONData格式为

{
"total":1,
"page":1,
"records":1,
"rows":[
    {"id":"6","cell":["Robbie","2"]}
       ]
}

但网格不是绑定数据。

请帮忙。我在这做错了什么。我试着在最近2天解决这个问题。

最诚挚的问候, MLG

1 个答案:

答案 0 :(得分:1)

您在代码中犯了太多错误:

  • 您包含query.jqGrid.min.jsquery.jqGrid.src.js,而不是文件中仅使用一个
  • 您的GetDataFromDB方法返回结果为string,这是错误的。您应该返回具有属性totalpagerows等的对象。目前,您进行手动JSON序列化,结果字符串将再次序列化
  • 您使用datatype作为函数,这是多年前需要引入的新参数,例如here。您当前的实现datatype函数是错误的,因为它在从服务器接收任何结果之前进行异步 Ajax调用并返回。服务器结果将被丢弃。
  • 从服务器返回的JSON数据包含网格行(["Robbie","2"])的两个字符串,但您定义了 tree
  • ...

我可以继续......

所以我建议你看看其他一些使用ASMX web服务和jqGrid的代码示例。 Here例如,您可以下载一个有效的演示版。在the answer中,您将找到另一个演示。