Dobrý den, Vlastní parsování hodnoty DateTime není problém, na to použijete metodu DateTime.Parse (https://msdn.microsoft.com/cs-cz/library... případně DateTime.ParseExact (https://msdn.microsoft.com/cs-cz/library... podle toho v jakém formátu, kultuře apod. máte textovou reprezentaci. Zde je ale hlavní problém v tom, že vůbec nějaké parsování chcete provádět. Ve vašem kódu se datum získaný z databáze převádí na textový řetězec do nějakého zvoleného formátu nebo podle aktuální kultury uživatele podle globalizace apod. za účelem jeho zobrazení v UI. Tato textová reprezentace by samozřejmě neměla sloužit k ničemu jinému než pro to zobrazení. A to nemluvím o tom, že při odkazu indexem e.Row.Cells(5).Text nikdo neví o jaké pole jde a že se zrovna jedná o datum. Dále ve vašem kódu máte nějaký nesmyslný For Each, ve kterém procházíte jednotlivé sloupce aktuálního řádku (a aktuální sloupec si nazvete "row") a proměnnou row pak (naštěstí) nikde nepoužijete. Správně je tedy pro odvozenou logiku jako barvu apod. použít přímo původní hodnotu typu DateTime z underlying data objektu tj. vlastnost e.Row.DataItem viz https://msdn.microsoft.com/cs-cz/library... Pokud prvek GridView plníte pomoci sqldatasource (což je samoosobě "prasárna"), tak bude DataItem typu DataRowView a na příslušný sloupec se odkážete jeho jménem, tak jak je ve zdrojovém SQL. Pokud používáte model binging (což byste měl) bude DataItem váš model a na příslušný sloupec se odkážete krásně čistě a hlavně typově.
|