$(...)。jqGrid不是.aspx网页中的函数

时间:2014-08-20 12:45:38

标签: jquery asp.net jqgrid

我有一个JQgrid,我可以加载到我的Visual Studio 2010.But根据我的要求,我需要将此JQgrid添加到我的Visual Studio 2010 Web项目。将此添加到VS2013我收到以下错误..

$(...).jqGrid is not a function
empty string passed to getElementById

以下是我使用的参考资料..

<link href="css/jquery-ui-1.8.16.custom.css" rel="stylesheet" type="text/css" />
<link href="css/ui.jqgrid.css" rel="stylesheet" type="text/css" />
<link href="plugins/ui.multiselect.css" rel="stylesheet" type="text/css" />
<script src="js/jquery-1.5.2.min.js" type="text/javascript"></script>
<script src="js/i18n/grid.locale-en.js" type="text/javascript"></script>
<script src="js/jquery-ui-custom.min.js" type="text/javascript"></script>
<script src="plugins/ui.multiselect.js" type="text/javascript"></script>
<script src="js/jquery.jqGrid.min.js" type="text/javascript"></script>

请帮我解决这个问题..

这就是HTML ..

              <div class="panel-body">
              <table id="UsersGrid" cellpadding="0" cellspacing="0">
              </table>
              <div id="UsersGridPager">
              </div>
              </div>

这是完整的脚本..

script type="text/javascript">
var i = 1;
$(document).ready(function () {
    {

    var i=1;
    $('#Button1').click(function (evt) {
            evt.preventDefault();

                if (i == 1) { getdata(); }
                else {
                    jQuery("#UsersGrid").jqGrid('GridUnload');
                    getdata();
                }
                i++; 


    });

    }
});

        function getdata() {
        $("#UsersGrid").jqGrid({
            url: 'fetchdata.ashx',
            datatype: 'json',
            mtype:'GET',
            height: 250,
            colNames: ['AccountNumber', 'BillNumber', 'BillDate'],
            colModel: [
                    { name: 'AccountNumber', index: 'AccountNumber', width: 100, sortable: true, align: 'center', hidden: true },
                    { name: 'BillNumber', width: 100, sortable: true, align: 'center' },
                    { name: 'BillDate', width: 100, sortable: true, align: 'center' },

                ],
            rowNum: 100,
            rowList: [100, 200, 300],
            pager: '#UsersGridPager',
            sortname: 'AccountNumber',
            viewrecords: true,
            ignoreCase: true,
            sortorder: 'asc',
            autowidth: true,
            toppager: true,
            height: '100%'

        });

        $("#UsersGrid").jqGrid('navGrid', '#UsersGridPager', { edit: false, add: false, del: false, search: false });


    };

</script>

1 个答案:

答案 0 :(得分:1)

.JqGrid肯定是错误的。您应该使用.jqGrid代替。 JavaScript区分大小写。

更新:您的代码包含具有名称为height的两个属性的对象:height: 250height:"100%"。这是你的错误。您应该删除height: 250以修复错误。

此外,您应在代码中添加gridview: true。在创建网格之前,您还可以使用$("#UsersGrid").jqGrid("GridUnload"); 。所有方法的代码都测试grid属性(参见the line代码),如果''尚未转换为网格,则调用无效。因此,您可以从代码中删除所有奇怪的i变量,删除不需要的全局函数getdata,然后在getdata内移动$('#Button1').click函数的正文事件处理程序。

还有一条话:您应该在,之前删除逗号(]),并减少colModel的定义

colModel: [
    { name: 'AccountNumber', index: 'AccountNumber', width: 100, sortable: true, align: 'center', hidden: true },
    { name: 'BillNumber', width: 100, sortable: true, align: 'center' },
    { name: 'BillDate', width: 100, sortable: true, align: 'center' },
]

以下

colModel: [
    { name: 'AccountNumber', hidden: true },
    { name: 'BillNumber' },
    { name: 'BillDate' }
],
cmTemplate: {width: 100, align: 'center'}

顺便说一下,如果您想将AccountNumber用作rowid,那么您应该在列定义中添加key: true