[Resolvido] Filtro Com Listdata Num Campo Enum

Tinha conseguido mostrar o valor gravado corretamente, com um campo Enum.

E agora tenho que fazer ele aparecer na lista e permitir filtro.

E mais… quero que a informação apareça previamente filtrada.

Porque é um campo de Status tem "Em Andamento", "Perdido" e "Concluído"

Então ao entrar na lista quero que apareça todos que estão "Em Andamento"

e mostrar os outros dois status só se forem acionados no filtro.

Mas nem o básico deu, por enquanto.

Todas situações que vi no sistema (e inclusive que pesquisei na internet) o listData só aparece com campo vinculado a outra tabela.

Mas nesse caso não existe a outra tabela porque os valores possíveis estão no próprio Enum.

Consegui resolver essa parada, com a dica do zaccaria


'filter' =>ZHtml::enumDropDownList( $model,'StatusConta'),

O caso é que agora ele ta na mesma situação, daquele campo de data, com filtro.

Problema Com Objeto Tbdaterangepicker

NÃO FILTRA

Pelo que vi ele realiza filtro (pq aparece demorar um pouco quando muda o foco) mas o filtro ababa não filtrando nada

Então agora que este sintoma ocorre com dois objetos diferentes

da pra concluir que é independente do objeto

deve ser alguma coisa relacionada a model ou view :unsure:

Consegui fazer o filtro, era fácil afinal, mas ainda to com problema quanto ao filtro inicial.

Consegui fazer ele filtrar só os "Em Andamento" ao entrar na página.


$model->StatusConta='Em Andamento';

O problema é que agora quando mudo a opção do filtro, como por exemplo para "Encerrados", ele continua filtrando só o "Em Andamento".

E tem lógica, afinal coloquei um código setando o valor do campo StatusConta para "Em Andamento".

Agora precisaria fazer isto apenas NO PRIMEIRO CARREGAMENTO da página.

Ou seja se a página é recarregada pelo acionamento do filtro, deve então não fazer esta inicialização.

Eu asp.net eu utilizava a propriedade POST_BACK, que indicava se a página tinha sido re-enviada.

Então eu atualizada a variável caso não houvesse o Post_Back

Creio que daria pra fazer uma gambiarra, utilizando uma variável estática…

Mas acredito que o Yii tenha já o recurso que precise

Resolvido foi bem fácil ao final das contas, pq usei a solução mais simples possível


<?php if ($model->StatusConta == '') {

    $model->StatusConta='Em Andamento';

}

Mas ainda continua o problema do filtro do campo de data

Problema Com Objeto Tbdaterangepicker