domingo, 28 de fevereiro de 2010

Asp.Net Dynamic Data - Ordenando e Definindo os campos para filtros de chave estrangeira

Fala, galera!!

Quando definimos um filtro cuja a origem é uma chave estrangeira o Dynamic Data gera uma combo.
Isto é definido pelo usercontrol ForeignKey.ascx que fica no diretório FilterTemplates.

Por padrão, o campo exibido na propriedade "Text" do dropdown é sempre o primeiro campo logo após a chave primária.

Mas como definir manualmente a propriedade "Text" de cada item da combo e a ordem com que os mesmos aparecerão?

Simples!

Basta adicionar o seguinte código no metadata da tabela origem da chave estrangeira. Ou seja, onde ela é a chave primária.


<DisplayColumn("Descricao", "Descricao", False)> _
    <MetadataType(GetType(Evento_Metadata))> _

O código em negrito é o que deve ser adicionado logo acima da declaração do MetadataType.

Desta forma, seu Dropdownlist ou seu listbox exibirão o campo "Descricao" e serão ordenados pelo mesmo campo por ordem alfabética.

OBS: No exemplo acima utilizei o relacionamento entre uma tabela chamada "Log" e outra chamada "Evento" e inseri um filtro por "Evento" na tabela de Log.


Um abraço e até a próxima!!

2 comentários: