J'utilise DataGridView avec une liaison de données d'objet pour afficher des informations sur la journalisation d'entités dans un système, extraites via SOAP à partir d'un service distant . L'une des colonnes s'appelle "Dernière action" et signifie la dernière fois. l'entité a enregistré un message. C'est une valeur System.DateTime
. Lorsque je lis la réponse SOAP (exemple ci-dessous), l'horodatage contient évidemment toutes les informations, jusqu'à la seconde fraction.
<LoggingEntity>
<Host>marty86ce</Host>
<process>10148</process>
<logger>http_core</logger>
<appName>httpd</appName>
<ffda>true</ffda>
<lastAction>2010-10-27T12:00:19.5117509Z</lastAction>
<lastHeartbeat>0001-01-01T00:00:00</lastHeartbeat>
<channelId>em_9BA2A2B4D0B6E66</channelId>
<ffdaChannelId>em_E7C8D1D4DE8EEB9</ffdaChannelId>
</LoggingEntity>
Lorsque je l’affiche sur la table, je peux au contraire lire jusqu’au compte rendu J'utilise le code suivant pour effectuer la liaison de données lorsque j'appuie sur le bouton d'actualisation
public void RefreshEntities()
{
IEntityManagement management = EntityPlugin.GetProxy();
LoggingEntity[] result = management.FindLoggingEntities(new TemplateQuery { ffdaSpecified = true, ffda = true }); //Remote invocation
Invoke(new MethodInvoker(delegate { gridEntities.DataSource = result; })); //THIS does the data binding from the array
Invoke(new MethodInvoker(delegate { btnRefresh.Enabled = true; }));
}
J'aimerais savoir comment contrôler le formatage des colonnes de valeurs liées aux données. Je pense que le format jj/mm/aaaa hh: mm provient des paramètres de mon système. Comment remplacer les paramètres de formatage par programme?
Merci d'avance
Code de solution complet sur Subversion (programme FFDAGui) pour le projet open source Logbus-ng.
S'il s'agit d'une fenêtre de type Datagrid, vous pouvez utiliser le code ci-dessous pour formater la date et l'heure d'une colonne.
dataGrid.Columns[2].DefaultCellStyle.Format = "MM/dd/yyyy HH:mm:ss";
MODIFIER :
En dehors de cela, si vous avez besoin de la date/heure au format AM/PM, vous pouvez utiliser le code ci-dessous.
dataGrid.Columns[2].DefaultCellStyle.Format = "MM/dd/yyyy hh:mm:ss tt";
Utilisez Column.DefaultCellStyle.Format property ou définissez-le dans le concepteur
Vous pouvez définir le format que vous voulez:
dataGridViewCellStyle.Format = "dd/MM/yyyy";
this.date.DefaultCellStyle = dataGridViewCellStyle;
// date being a System.Windows.Forms.DataGridViewTextBoxColumn
Vous pouvez définir le format dans aspx, ajoutez simplement la propriété "DateFormatString" dans votre BoundField.
DataFormatString="{0:dd/MM/yyyy hh:mm:ss}"
Publié par Microsoft dans Chaînes de format de date et heure standard :
dataGrid.Columns[2].DefaultCellStyle.Format = "d"; // Short date
Cela devrait formater la date en fonction des paramètres de localisation de la personne.
Cela fait partie de la collection plus étendue de Types de formatage dans .NET de Microsoft.
J'ai utilisé ces codes J'espère que cela pourrait aider
dataGridView2.Rows[n].Cells[3].Value = item[2].ToString();
dataGridView2.Rows[n].Cells[3].Value = Convert.ToDateTime(item[2].ToString()).ToString("d");