duanqianhuan3994 2015-03-17 11:37
浏览 73
已采纳

通过js动态添加gridview行中的CJuiAutocomplete

Hi i am trying to create custom widget for my project. The widget includes program name and program type. For field type i have used CJuiAutoComplete. Here is my code!

$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider' => $this->productArray,
    'id' => 'gridview_add_product',
    'columns' => array(
            array(
                    'header' => 'URL',
                    'value' => 'CHtml::textField("program[$data->id][url]",$data->url,
                    array(
                    \'id\'=>\'program_url_\'.$data->id,
                    ))',
            ),
            array(
                    'header' => 'Type',
                    'value'=>'Yii::app()->controller->widget("zii.widgets.jui.CJuiAutoComplete",array(
                            "name"=>"type",
                            "attribute"=>"resolution",
                            "source"=>array("A","B","C","D","E"),
                            "value"=>$data->type,
                            ),true)',
                    'type' => 'raw',
                    'headerHtmlOptions'=>array('style'=>'width: 100px'),
            ),
            array(
                    'class' => 'CButtonColumn',
                    'headerHtmlOptions'=>array('style'=>'width: 100px'),
                    'buttons' => array(
                            'linkToModel' => array(
                                    'label' => 'Remove',
                                    'click' => "function(){
                                    removeStreamRow($(this));
                                    }",
                            ),
                    ),
            ),
    ),
 ));

Now there is add button which dynamically add new row (name field, type 'autocomplete' and remove button) in CGridView. My js script is as below.

var addProductRow = function(){
$('#gridview_product .empty').parent().remove();
$('#gridview_product tr:last').after('<tr class="odd"><td class="productData"><input id="product_url_'+ nextId + '" type="text" name="product['+ nextId +'][url]"></td><td><input name="type" id="product_'+ nextId + '_type" class = "ui-autocomplete-input" autocomplete = "off" type = "text" ><span class="ui-helper-hidden-accessible" role="status" aria-live="polite"></span></td><td class="button-column"><a class="linkToModel"title="Remove"href="#product_url_'+ nextId + '">Remove</a></td></tr>');nextId--;}

Now when i dynamically add new row through js, the field for "type" do not show AutoComplete functionality.

How could i add CJuiAutocomplete through js in the CGridview row. Please help me out.

  • 写回答

1条回答 默认 最新

  • dtry54612 2015-03-19 09:44
    关注

    After adding html block in gridview you need to bind input field for type with autocomplete event like.

    $( ".ui-autocomplete-input" ).autocomplete({
        source: function(request, response){
         //you source
        }
    });
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)