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!

Foi útil?

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).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top