ASP.NET DataGrid - escondendo uma linha / coluna específica
Pergunta
Eu estou usando um Datagrid com várias colunas de dados (chamemos-lhe myDG) e uma dessas colunas é um DateTime ligado a uma fonte de dados. Seu valor é dependente de um objeto "trabalho" de concluir um trabalho e atribuindo o valor de data e hora. Uma vez que este normalmente leva até um minuto o valor é deixado não atribuído no início.
definição asp.net A coluna é:
<asp:boundcolumn
DataField="CompletedDate"
HeaderText="Date Completed"
DataFormatString="{0:dd-MMM-yyyy <br> hh:mm:ss tt}" />
Assim, a funcionalidade funciona bem quando o "trabalho" foi concluída e ele define o tempo. Mas antes disso, enquanto a linha está sendo exibido, ele mostra como
01-Jan-0001 00:00:00
Estou querendo esconder isso e determinou que a melhor maneira seria para mascarar essa linha e coluna em particular com um branco, ou substituir o valor temporariamente. Estou tendo problemas fazendo isso e encontrar uma maneira de acesso que linha e coluna específica.
É a coluna da grade de dados e sempre na primeira fila [3] (desde novas linhas são adicionadas no topo).
Existe uma maneira de acessar diretamente essa célula e temporariamente 'esconder' o seu conteúdo, ou mascará-los? Idealmente, seria ótimo se houvesse uma maneira de branco para fora todas as linhas que tinham um valor igual a este em sua coluna, mas uma forma de manipular a célula específica iria funcionar tão bem.
-graças com antecedência!
Solução
Eu tenho feito coisas semelhantes no passado e aqui é o que tenho feito.
Bind os dados para uma coluna que não é visível a todos. Adicionar uma coluna visível para os dados que você deseja exibir. No momento em que preencher sua grade, percorrer os registros e para qualquer que tem um valor que não é 01-Jan-0001 12:00:00, definir a sua linha visível a esse valor. Se isso acontecer igual 01-Jan-0001 12:00:00, em seguida, defina o valor de sua linha visível como uma cadeia vazia ou algum valor de sua escolha. (Você pode até mesmo definir a cor de texto para o mesmo que a cor de fundo para que ele não iria aparecer para o usuário)
Outras dicas
Eu provavelmente ligar OnItemDataBound, verifique o valor, e substituir / reformatação, se necessário.
Eu fiz uma pergunta semelhante sobre como ocultar colunas aqui .
Eu tive que usar o evento RowCreated para esconder determinadas colunas do usuário (colunas PK) e isso pode ajudá-lo bem (especialmente com colunas esconderijo de ligação de dados).