Ошибка установки Jqgrid - this.p не определено - PullRequest
1 голос
/ 09 мая 2011

Я пытаюсь настроить jqgrid в первый раз, мой импорт js выглядит следующим образом,

<link rel="stylesheet" type="text/css" media="screen" href="css/jquery-ui-1.8.12.custom.css" />
<link rel="stylesheet" type="text/css" media="screen" href="css/ui.jqgrid.css" />
<link rel="stylesheet" type="text/css" media="screen" href="css/ui.multiselect.css" />
<script src="http://code.jquery.com/jquery-1.5.2.min.js" type="text/javascript"></script>
<script src="js/jquery.jqGrid.min.js" type="text/javascript"></script>
<script src="js/jquery-ui-1.8.12.custom.min.js" type="text/javascript"></script>
<script src="js/jquery.contextmenu.js" type="text/javascript"></script>
<script src="js/jquery.searchFilter.js" type="text/javascript"></script>
<script src="js/jquery.tablednd.js" type="text/javascript"></script>
<script src="js/ui.multiselect.js" type="text/javascript"></script>
<script src="js/grid.loader.js" type="text/javascript"></script>

Я получаю сообщение об ошибке "this.p не определено в строке 137". Я не уверен, что мне не хватает какого-то импорта. Любые мысли по этому поводу были бы замечательно.

Спасибо, Abi

@ Исправленный импорт после комментариев Олега,

<link rel="stylesheet" type="text/css" media="screen" href="css/jquery-ui-1.8.12.custom.css" />
<link rel="stylesheet" type="text/css" media="screen" href="css/ui.jqgrid.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.jqGrid.min.js" type="text/javascript"></script>
<script src="js/jquery-ui-1.8.12.custom.min.js" type="text/javascript"></script>

По-видимому, не работает: (

Модифицированный полный код:

    <html>
<head>
<title>.: Sample :.</title>
<link rel="stylesheet" type="text/css" media="screen" href="css/jquery-ui-1.8.12.custom.css" />
<link rel="stylesheet" type="text/css" media="screen" href="css/ui.jqgrid.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.jqGrid.min.js" type="text/javascript"></script>
<script src="js/jquery-ui-1.8.12.custom.min.js" type="text/javascript"></script>
<script>
/*if ($()) {  

 }*/

 $(document).ready(function(){
    for(var i=0;i<=mydata.length;i++){
            $("#table1").jqGrid('addRowData',i+1,mydata[i]);
        }
    }
 )

jQuery("#table1").jqGrid({ 
    datatype: "local", 
    height: 250, 
    colNames:['Inv No','Date', 'Client', 'Amount','Tax','Total','Notes'], 
    colModel:[ 
        {name:'id',index:'id', width:60, sorttype:"int"}, 
        {name:'invdate',index:'invdate', width:90, sorttype:"date"}, 
        {name:'name',index:'name', width:100}, 
        {name:'amount',index:'amount', width:80, align:"right",sorttype:"float"}, 
        {name:'tax',index:'tax', width:80, align:"right",sorttype:"float"}, 
        {name:'total',index:'total', width:80,align:"right",sorttype:"float"}, 
        {name:'note',index:'note', width:150, sortable:false} 
        ], 
    multiselect: true, 
    caption: "Manipulating Array Data" 
});

var mydata = [ 
    {id:"1",invdate:"2007-10-01",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"}, 
    {id:"2",invdate:"2007-10-02",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"}, 
    {id:"3",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"}, 
    {id:"4",invdate:"2007-10-04",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"}, 
    {id:"5",invdate:"2007-10-05",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"}, 
    {id:"6",invdate:"2007-09-06",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"}, 
    {id:"7",invdate:"2007-10-04",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"}, 
    {id:"8",invdate:"2007-10-03",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"},         
    {id:"9",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"}
 ];

</script>
</head>
<body>
<div id="outerDiv" style="border: 0px solid #060606; width: 100%; height: 100%;">
    <div style="border: 0px solid #060606; width: 100%; height: 25%;">Put whatever you want in here</div>
    <div style="border: 0px solid #060606; width: 100%; height: 23%;">
        <div style="border: 0px solid #060606; width: 50%; height: 99%;float:left;">
            <table id="table1"></table>
        </div>
        <div style="border: 0px solid #060606; width: 50%; height: 99%;float:right;">
            Div Right
        </div>
    </div>  
    <div style="border: 0px solid #060606; width: 100%; height: 23%;">
        <div style="border: 0px solid #060606; width: 50%; height: 99%;float:left;">
            Div Left
        </div>
        <div style="border: 0px solid #060606; width: 50%; height: 99%;float:right;">
            Div Right
        </div>
    </div>
    <div style="border: 0px solid #060606; width: 100%; height: 23%;">
        <div style="border: 0px solid #060606; width: 50%; height: 99%;float:left;">
            Div Left
        </div>
        <div style="border: 0px solid #060606; width: 50%; height: 99%;float:right;">
            Div Right
        </div>
    </div>
    <div style="border: 0px solid #060606; width: 100%; height: 6%;">

    </div>
</div>
</body>
</html>

1 Ответ

1 голос
/ 09 мая 2011

Вы должны удалить jquery.searchFilter.js, jquery.tablednd.js и grid.loader.js и добавить загрузку grid.locale-en.js до jquery.jqGrid.min.js.

Если вы хотите использовать grid.loader.js, вам следует проверить содержимое файла и вставить после grid.loader.js только те файлы JS, которые не включены в grid.loader.js. Правило гласит: нельзя загружать модули jqGrid дважды.

ОБНОВЛЕНО : Вам нужно внести некоторые изменения в ваш основной JavaScript. Результаты моих предложений вы можете увидеть здесь .

Что делать:

  1. добавить <!DOCTYPE ... перед <html> элементом.
  2. поместите весь свой код JavaScript в $(document).ready(function(){ (не только вызов addRowData).
  3. Более эффективно использовать data: mydata параметр jqGrid для использования addRowData метод.
  4. Чтобы иметь полный валидный строгий HTML-код, я включил <tr><td/></tr> в элемент <table>. Как вы можете проверить на validator.w3.org измененный код из http://www.ok -soft-gmbh.com / jqGrid / Abhishek.htm не имеет ошибок проверки.
  5. Я не совсем понимаю дизайн HTML-страницы, который вы используете. Тем не менее, я добавил стиль clear:both; для первого div после <table>, чтобы перейти на следующую строку.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...