1. Christoffer Niska
  2. yii-bootstrap
  3. Issues
Issue #197 resolved

Bootstrap TbGridView disappears in sorting, paging and filtering -IE8

Rajeev R
created an issue

Hi,

I have integrated yii bootstrap extension in to my site. I have a page where I am displaying a Grid view. Though its bootstrap, I have used TbGridView. The basic GridView functionality like, sort, paging, filtering, everything works fine in all browsers except IE8. Whenever I tried to perform sort, paging, filtering in Grid, the Grid disappears. It happens only in IE8. I have checked the jquery-yiigridview.js by debugging. especially ,

update: function (options) {

But found nothing special. Only thing I came to understand that, In IE8, the response is not appended to the Grid (#id). Something is missing related to the ajax rendering in IE8.

Strange thing is that, I have another page where I am using a pop up using the renderPartial method. There is also a TbGridView. But that works fine in IE8.

More info:

Controller:

              <?php 
               public function actionRate()
               {
                $requestModel = new Rate('search');             
                $requestModel->unsetAttributes();  // clear any default values
                if(isset($_GET['Rate']))
                $requestModel->attributes=$_GET['Rate'];
                $this->render('requestList', array('model'=>$requestModel)); 
                }
         ?>

View:

!php

<?php

$this->widget('bootstrap.widgets.TbGridView', array(

    'id'=>'request-grid-list',
'filter'=>$model,
    'type'=>'striped bordered condensed',
'dataProvider'=>$model->search(),   
    'columns'=>array(               
            array(
                    'name' => 'ratename',
                    'type'=>'raw',
                    'value' => '$data->ratename',
            )

    ),

));

?>


```

Comments (2)

  1. Rajeev R reporter

    After so much debugging, I found out the reason for the issue in IE8.

    My First thought was the jquery-yiigridview.js. I found that, the update method in jquery-yiigridview.js for yii grid is working fine.

    [code]

            $.each(settings.ajaxUpdate, function (i, el) {
            var updateId = '#' + el;
            $(updateId).replaceWith($(updateId, $data));
            });
    

    [/code]

    Then suddenly the Grid disappeared. Yes the problem was with the "response data". Firefox and Chrome render it perfectly. But in IE8 it results in error. So I checked the response data. There was "bootstrap.widgets.TbNavbar" inside my main.php layout file. When I removed that, it worked. But that's not the fix. I checked why it is breaking in IE8.

    [code]

            $this->widget('bootstrap.widgets.TbNavbar', array(
            'type'=>'inverse', // null or 'inverse'
            'brand'=>$brandName,
            'brandUrl'=>'#',
            'collapse'=>true, // requires bootstrap-responsive.css
            'items'=>array(
            array(
    

    [/code]

    'collapse'=>true, // requires bootstrap-responsive.css .. This was the problem. So I removed that line. Now its working perfectly in IE8.

    But that's not the end.. Next thing is.. learn,, :) :) http://twitter.github.com/bootstrap/scaffolding.html#responsive

    NOTE: It's a quick fix. Please share yout thoughts.

  2. Log in to comment