Como ocultar uma coluna apenas na página de lista em ASP.NET Dynamic Data?
-
09-06-2019 - |
Pergunta
Isto é um pouco semelhante a essa questão.
No entanto, em vez de querer ocultar uma coluna por completo, estou apenas tentando ocultar a coluna na página List.aspx.
Meu exemplo específico é que os campos longos (ou pelo menos nvarchar(MAX)) são ocultados automaticamente da página List.aspx como estão, mas ainda estão visíveis na página Edit.aspx.
Gostaria de replicar esse comportamento para outras colunas (mais curtas).
Isso é possível?
Solução
Você pode criar uma página personalizada para a tabela específica que deseja alterar.Há um exemplo aqui.
Na sua página personalizada, você pode definir AutoGenerateColumns="false"
dentro do asp:GridView
controle e defina exatamente as colunas desejadas, assim:
<Columns>
...
<asp:DynamicField DataField="Product" HeaderText="Product" />
<asp:DynamicField DataField="Colour" HeaderText="Colour" />
</Columns>
Outras dicas
Acho que esta solução é realmente útil, porque permite que você use o modelo de atributos para especificar quais colunas vão para onde:http://csharpbits.notaclue.net/2008/10/dynamic-data-hiding-columns-in-selected.html
se você estiver usando bootstrap, você pode definir assim
<asp:DynamicField DataField="Id" ItemStyle-CssClass="hidden" HeaderStyle-CssClass="hidden" FooterStyle-CssClass="hidden"/>