使用CGridView时,过滤器输入字段由组件自动生成。
我想选择哪些列将显示输入字段。例如: 我的模型有5列。我希望CGridView仅显示第1列和第2列的输入过滤器。
有没有办法不使用CSS或jQuery,只需在CGridView选项上添加一些代码?
答案 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>',