Why do we tell you to turn it off and on again? Because we don't have the slightest clue what's wrong with it, and it's really easy to induce coma in computers and have their built-in team of automatic doctors try to figure it out for us.
Zoiets?
https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...
Ik kan wel de getallen opvragen via
1
| dgvReeks1.Columns[0].ToString(); |
en daar kan ik dan weer PadLeft(3,'0') op toepassen, maar hoe kan ik deze dan weer wegschrijven? Gewoon via
1
| dgvReeks1.Rows.Add(); |
Why do we tell you to turn it off and on again? Because we don't have the slightest clue what's wrong with it, and it's really easy to induce coma in computers and have their built-in team of automatic doctors try to figure it out for us.
1
| dgvReeks1.Rows[4].Columns[1] = PadLeft(dgvReeks1.Rows[4].Columns[1].ToString().PadLeft(3, '0'); |
Zoiets verwacht ik dan.
Maar als het toekennen van formatting niet lukt, is je column niet goed gebind aan de datasource, verwacht ik. Als alles juist is gebind kun je namelijk gewoon string formatting gebruiken.
We zullen wat code van je dataset en van je gridview moeten zien om dat te kunnen bepalen, verwacht ik.
We are shaping the future
Verwijderd
Kun je niet beter een eigen IComparer in elkaar zetten en die gebruiken? Dan kun je namelijk zelf de getallen-als-string omzetten naar een gewone integer, en die dan vergelijken.
Ik heb nog nooit met C# gewerkt, maar ik weet wel dat deze oplossing vrij standaard is in JFace. Ik denk ook dat het een stuk flexibeler werkt dan uitgaan van de ingebouwde sorteermethode als je opeens heel andere data wil gebruiken (maar ik weet niet hoe goed Microsoft z'n System.Windows.Forms heeft bedacht).
@Alex): Bij het gebruik van jouw code krijg ik een error die meld dat ik geen Columns kan gebruiken na het gebruik van Rows. Na dat ik wat aanpassingen had verricht kreeg ik als error "Error 1 Property or indexer 'System.Windows.Forms.DataGridViewColumnCollection.this[int]' cannot be assigned to -- it is read only"
Dus ik vermoed dat er inderdaad iets mis is met mijn binding met de datasource, hier zal ik nog eens naar kijken.
@Tinctorius: Het is inderdaad om alles makkelijk te kunnen sorteren, ik zal eens een kijkje nemen naar IComparer, bedankt.
EDIT:
Oké, na 3 dagen denken en zoeken is het mij gelukt. Ik heb mijn code voor het inlezen van de XML helemaal omgegooid zodat ik nu het volgende heb:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| DataTable dt = (DataTable) dgvReeks1.DataSource; XmlDocument xmldoc = new XmlDocument(); xmldoc.Load(Filename()); XmlNodeList reeksList = xmldoc.GetElementsByTagName("reeks"); foreach (XmlNode node in reeksList) { XmlElement reeksElement = (XmlElement)node; string strNr = reeksElement.GetElementsByTagName("Nr")[0].InnerText; string strTitel = reeksElement.GetElementsByTagName("Titel")[0].InnerText; string strStaat = reeksElement.GetElementsByTagName("Staat")[0].InnerText; string strAanwezig = reeksElement.GetElementsByTagName("Aanwezig")[0].InnerText; dgvReeks1.ColumnCount = 4; dgvReeks1.Columns[0].Name = "Nr."; dgvReeks1.Columns[1].Name = "Titel"; dgvReeks1.Columns[2].Name = "Staat"; dgvReeks1.Columns[3].Name = "Aanwezig"; dgvReeks1.Rows.Add(strNr.PadLeft(3,'0'), strTitel, strStaat, strAanwezig); } |
Iedereen hartelijk bedankt voor het meedenken!
[ Voor 53% gewijzigd door Thorchy op 24-05-2010 23:35 ]
Why do we tell you to turn it off and on again? Because we don't have the slightest clue what's wrong with it, and it's really easy to induce coma in computers and have their built-in team of automatic doctors try to figure it out for us.