Ошибка jqGrid в IE7 - PullRequest
       2

Ошибка jqGrid в IE7

0 голосов
/ 30 августа 2010

Я использую jqgrid, в настоящее время он отлично работает в FF, IE8, Chrome, Safari. Но в IE7 я получаю эту ошибку:

'this.rows.0.cells' равно нулю или не является объектом

jquery.jqGrid.min.js

Код: 0

Линия: 122 Char: 278

Кто-нибудь сталкивался с этим раньше? Есть известное исправление?

обновление

Вот мой PHP-код:

$qry = 'SELECT stock_num, shape, carat, clarity, color, cut 
        FROM rapnet_diamonds 
        WHERE (carat BETWEEN "0" AND "5") 
        AND (color BETWEEN "D" AND "Z") 
        AND ( CASE clarity 
            WHEN "FL" THEN 0 
            WHEN "IF" THEN 1 
            WHEN "VVS1" THEN 2 
            WHEN "VVS2" THEN 3 
            WHEN "VS1" THEN 4 
            WHEN "VS2" THEN 5 
            WHEN "SI1" THEN 6 
            WHEN "SI2" THEN 7 
            WHEN "I1" THEN 8 
            WHEN "I2" THEN 9 
            WHEN "I3" THEN 10 
            ELSE -1 END BETWEEN "0" AND "10") 
        AND ( CASE cut 
            WHEN "ideal" THEN 0 
            WHEN "excellent" THEN 1 
            WHEN "very good" THEN 2
            WHEN "good" THEN 3 
            WHEN "fair" THEN 4 
            WHEN "poor" THEN 5 
            ELSE -1 END BETWEEN "0" AND "5")';

$grid->SelectCommand = $qry;
// set the ouput format to json
$grid->dataType = 'json';
// Let the grid create the model
$grid->setColModel();


// Set grid caption using the option caption
$grid->setGridOptions(array(
    "caption"=>"Diamonds Found",
    "rowNum"=>200,
    "sortname"=>"diamond_id",
    "hoverrows"=>true,
    "sortable"=>0,
    "scroll"=>1,
    "height"=>300,
    "altRows"=>true,
    "colNames"=> array('ID', 'Shape', 'Carat', 'Clarity', 'Color', 'Cut')
    ));
// Change some property of the field(s)
$grid->setColProperty("diamond_id", array("label"=>"ID", "width"=>60));
// Enjoy
$grid->renderGrid('#grid','#pager',true, null, null, true,true);
$conn = null;

Вот что генерируется:

<table id='grid'></table>
    <div id='pager'></div>
    <script type='text/javascript'>
    jQuery(document).ready(function() {jQuery('#grid').jqGrid({"width":"650","hoverrows":true,"viewrecords":true,"jsonReader":{"repeatitems":false,"subgrid":{"repeatitems":false}},"xmlReader":{"repeatitems":false,"subgrid":{"repeatitems":false}},"gridview":true,"url":"myfirstgrid.php?yellow=","editurl":"myfirstgrid.php?yellow=","cellurl":"myfirstgrid.php?yellow=","onSelectRow":function(rowid, selected) 
    { 
        if(rowid != null) { 
           // alert("selected: "+rowid);
           loadSelectedDiamond(rowid);
        } 
    } ,"gridComplete":function() 
    { 
        diamondsReloaded();
    } ,"caption":"Diamonds Found","rowNum":200,"sortname":"diamond_id","sortable":0,"scroll":1,"height":300,"altRows":true,"colNames":["ID","Shape","Carat","Clarity","Color","Cut"],"datatype":"json","colModel":[{"name":"stock_num","index":"stock_num","editable":true,"sorttype":"string","key":true},{"name":"shape","index":"shape","editable":true,"sorttype":"string"},{"name":"carat","index":"carat","editable":true,"sorttype":"numeric"},{"name":"clarity","index":"clarity","editable":true,"sorttype":"string"},{"name":"color","index":"color","editable":true,"sorttype":"string"},{"name":"cut","index":"cut","editable":true,"sorttype":"string"}],"postData":{"oper":"grid"},"prmNames":{"page":"page","rows":"rows","sort":"sidx","order":"sord","search":"_search","nd":"nd","id":false,"filter":"filters","searchField":"searchField","searchOper":"searchOper","searchString":"searchString","oper":"oper","query":"grid","addoper":"add","editoper":"edit","deloper":"del","excel":"excel","subgrid":"subgrid","totalrows":"totalrows"},"pager":"#pager"}); });
    </script>

Я использую jqgrid версии 3.8

1 Ответ

1 голос
/ 31 августа 2010

После того, как вы разместите ссылку с вашим тестовым решением, я сам смог немного разобраться в проблеме. Я мог видеть, что главная страница загружает данные с URL http://www.kranichs.com/diamond_search/myfirstgrid.php. Полный запрос на получение выглядит как http://www.kranichs.com/diamond_search/myfirstgrid.php?yellow=&oper=grid&_search=false&nd=1283196859096&rows=200&page=1&sidx=diamond_id&sord=asc. Я мог также видеть в отношении Fiddler , что данные, которые будут отправлять обратно с сервера неверные данные JSON . Мне кажется, это ваша главная проблема. Данные выглядят следующим образом

4cb2
{"records":"136635","page":1,"total":684,"rows":[{...}]}
0

Часть {"records":"136635","page":1,"total":684,"rows":[{...}]} - это правильные данные JSON, которые нужны jqGrid. Я тестировал с http://www.trirand.net/demophp.aspx и вижу ту же проблему, но на другой странице http://www.trirand.net/demoaspnetmvc.aspx, которая ближе ко мне , нет проблемы !

Я рекомендую вам протестировать демонстрационные страницы http://www.trirand.net/demophp.aspx и http://www.trirand.net/demoaspnetmvc.aspx на том же компьютере, где у вас есть проблема IE7, которую вы описали.

Я всего лишь пользователь jqGrid, а не разработчик jqGrid, поэтому, если вы обнаружили какую-то проблему в jqGrid версии PHP, отправьте ее на http://www.trirand.net/. Я лично купил некоторое время назад ASP.NET MVC Subscription с полный исходный код для поддержки разработчиков jqGrid (но до сих пор используют только бесплатную версию jqGrid), поэтому у меня есть доступ только к коду ASP.NET MVC, а не к версии PHP. Так что, если ваша проблема существует в версии PHP, вы должны опубликовать на форуме http://www.trirand.net/.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...