Динамическое создание виджета

Есть у меня некий блок на странице, содержание к-го формируется целиком динамически аяксом.

И вот надо там вывести грид и кнопки. Вывести их - не проблема. Но не навешиваются яваскрипты связанные с виджетами, что вобще-то логично, но надо как-то исправить. Т.е. происходит примерно следующее




    /*тратататататат */

    $html.='<label for="table[' . $attr['TABLE_ID'] . ']">Двумерный показатель:' . $attr['TABLE_NAME'] . '</label>';

    /*тратататататат */

    $grid = $this->widget('zii.widgets.grid.CGridView', array(

                        'dataProvider' => ORG_OBJECT::model()->getTable($oy_id, $attr['TABLE_ID']),

                        'summaryText' => 'Всего элементов: {count}',

                        'pager' => array(

                            'footer' => '',

                            'header' => ''

                        ),

                        'template' => "

              <div class='table_head_p'>

    <a href='#' onclick='return false;' style='text-decoration:none'>Добавить</a>

    {summary}{pager}

              </div>

                \n{items}", 'columns' => $columns

                            ), true);

                    $html.= $grid;

    /*тратататататат */

    echo $html;

    exit;

Собственно грид появляется и показывает данные, но на кнопки {update}{delete} не навешивается яваскрипт дефолтный, на чекбоксы соотв-но тоже нету обработчиков…

Там ниже есть еще Chtml::ajaxSubmitButton() с той же бедой - кнопка есть, аякса нет.

Собственно, как бы это сделать правильно, что бы и яваскрипт подцепился?

JS код, который вставляется виджетом CGridView необходимо передавать передавать вместе с его HTML кодом, или же разместить на принимающей странице заранее.

CGridView не добавляет JS код непосредственно на страницу, но он добавляет эти данные в компонент ClientScript, из которого JS вставляется на страницу после окончания рендеринга представления (но до этого дело не доходит, потому что у вас в представлении стоит exit;)

Но тут есть ньансы, например если на странице отобразить CGridView, то он подключит свой .js файл в заголовок.

Если же подгружать аяксом что либо содержащее еще один CGridView, то может оказаться, что прийдет код подключение этого же файла, и в итоге кнопки перестают реагировать.

Вообще я и сам это смутно понимаю, а именно с твоей задачей даже не сталкивался, но надеюсь то то знаю, поможет тебе найти проблему.