Yii CGridView仅隐藏过滤器输入

时间:2012-11-20 22:45:56

标签: yii

使用CGridView时,过滤器输入字段由组件自动生成。

我想选择哪些列将显示输入字段。例如: 我的模型有5列。我希望CGridView仅显示第1列和第2列的输入过滤器。

有没有办法不使用CSS或jQuery,只需在CGridView选项上添加一些代码?

5 个答案:

答案 0 :(得分:24)

array(
    'name'=>'col3',
    'value'=>'$data->col3',
    'filter'=>false,
)

应该有用。

答案 1 :(得分:2)

如果您要从整个CGridView中移除所有过滤器,请配置'filterPosition'=>''

答案 2 :(得分:0)

只有评论和过滤器消失... 例如:

<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'usuario-grid',
'dataProvider'=>$model->search(),
//'filter'=>'false',
'columns'=>array(
    'rut_usuario',

...

答案 3 :(得分:0)

设置<% content_for :on_document_ready_js_script do %> #this being yielded on layout $("#er_filters").change(function() { var url = "/examinee_registrations.js"; // grab the URL from the form action value. $.get(url, $("form").serialize()); }); <% end %> <div id="title"> <h1> <%=t("examinee_registration.title")%> <% if @location_id %> <span id="<%=@location_id%>"> <%=t("for") + " #{Location.find(@location_id).name}" %> </span> <% end %> </h1> </div> <br> <%= form_tag examinee_registrations_url(format: "xls"), method: :get do %> <div id="er_filters"> <br> <%= hidden_field_tag 'location_id', @location_id %> <%= label_tag 'from_date', t("from_date")+':' %> <%= date_field_tag "from_date" %> <br> <%= label_tag 'to_date', t("to_date")+':' %> <%= date_field_tag "to_date" %> <br> <%= label_tag 'hide_open', t("examinee_registration.hide_open")+':' %> <%= check_box_tag "hide_open", true, false %> <br> <%= label_tag 'hide_closed', t("examinee_registration.hide_closed")+':' %> <%= check_box_tag "hide_closed", true, false %> </div> <%= submit_tag t('export_to_excel') %> <% end %> <br> <%= link_to create_title('examinee_registration.single')+"ה", new_examinee_path %> <hr> <div id='er_div' > <%= render 'examinee_registrations' %> </div> 对我有用。

答案 4 :(得分:0)

您可以将'filter'=>设置为false,但是此属性将最小化列的索引。.禁用对特定列进行过滤的另一种方法是返回具有属性'disabled'的输入,例如:

 'filter'=>'<input type="text" class="form-control" name="UsersSearch[password]" 
   disabled>',