2009-01-07 10 views
0

J'utilise une Datagrid avec plusieurs colonnes de données (appelez-la myDG) et l'une de ces colonnes est un DateTime lié à une source de données. Sa valeur dépend de l'exécution d'un travail par un objet "job" et de l'attribution de la valeur de l'heure de la date. Comme cela prend normalement jusqu'à une minute, la valeur n'est pas affectée au début.ASP.NET Datagrid - masquer une ligne/colonne spécifique

définition asp.net de la colonne est:

<asp:boundcolumn 
    DataField="CompletedDate" 
    HeaderText="Date Completed" 
    DataFormatString="{0:dd-MMM-yyyy <br> hh:mm:ss tt}" /> 

Ainsi, la fonctionnalité fonctionne très bien lorsque le « travail » est terminée et qu'il fixe le temps. Mais avant cela, alors que la ligne est affichée, elle montre que

01-Jan-0001 00:00:00

Je suis désireux de cacher et a déterminé que la meilleure façon serait de masquer cette ligne et colonne particulière avec un blanc, ou remplacer la valeur temporairement. J'ai des problèmes à faire cela et à trouver un moyen d'accéder à cette ligne et colonne spécifique.

C'est la colonne [3] de la grille de données et toujours dans la première ligne (puisque de nouvelles lignes sont ajoutées en haut).

Existe-t-il un moyen d'accéder directement à cette cellule et de "cacher" temporairement son contenu ou de le masquer? Idéalement, ce serait génial s'il y avait un moyen de vider toutes les lignes qui avaient une valeur égale à ceci dans leur colonne, mais un moyen de manipuler la cellule spécifique fonctionnerait aussi.

- merci d'avance!

Répondre

0

J'ai fait des choses similaires dans le passé et voici ce que j'ai fait. Liez les données à une colonne qui n'est pas visible du tout. Ajoutez une colonne visible pour les données que vous souhaitez afficher. Au moment où vous remplissez votre grille, faites une boucle dans les enregistrements et pour ceux qui ont une valeur qui n'est pas 01-Jan-0001 12:00:00 AM, définissez votre ligne visible à cette valeur. Si elle est égale à 01-Jan-0001 12:00:00 AM, définissez la valeur de votre ligne visible sur une chaîne vide ou une valeur de votre choix. (Vous pouvez même définir la couleur du texte comme la couleur d'arrière-plan afin qu'elle n'apparaisse pas à l'utilisateur)

2

Je connecterais probablement OnItemDataBound, vérifier la valeur et remplacer/reformater si nécessaire.

2

J'ai posé une question similaire à propos des colonnes masquées here.

J'ai dû utiliser l'événement RowCreated pour masquer certaines colonnes de l'utilisateur (colonnes PK) et cela peut également vous aider (en particulier en masquant les colonnes de databound).

Questions connexes