ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
616
616
EMPFEHLEN
-
Hallöchen.
Ich habe ein kleines Problem, ich bin schon seid ein paar Tagen auf der Suche, wie man ein DataGrid vom Style her anpassen kann und das funktioniert ja über das Objekt "DataGridTableStyle". Ich hab auch einige Beispiele gefunden zu diesem Objekt, nur leider funktionierte bisher all das was ich getestet habe nicht, deshalb will ich euch mal fragen ob ihr mir evt. sagen könnt wo ich einen Fehler mache.
Der Code:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
DataSet ds2 = new DataSet(); this.zeigePanel(true,false,false,false); ds2 = test.DatenholenLocal("SELECT Sp1, Sp2 FROM Tabelle", "Tabelle", true); this.grdPosListe.DataSource = ds2.Tables["Table"].DefaultView; // Tabel Style Test DataGridTableStyle style = new DataGridTableStyle(); style.MappingName = "Tabelle"; DataGridTextBoxColumn compName = new DataGridTextBoxColumn(); DataGridTextBoxColumn compName2 = new DataGridTextBoxColumn(); compName.HeaderText = "Sp1"; compName.MappingName = "Sp1"; compName.Width = 300; style.GridColumnStyles.Add( compName ); compName2.HeaderText = "Sp2"; compName2.MappingName = "Sp2"; compName.Width = 300; style.GridColumnStyles.Add( compName2 ); this.grdPosListe.TableStyles.Add( style );
So, bis auf das ich Tabellen und Spaltennamen (Zur Übersicht) abgeändert habe, stimmt der Code mit meinem genau überein!
grdPosListe ist mein Datagrid. Kann mir jemand von euch sagen wo der fehler da sein könnte? Wenn es nötig ist, erklär ich auch noch was im Code passiert, denke ja aber das das nicht nötig ist.Abul Hellis - Disaq Li Haui ;o)
-
Hallo,
also auf Anhieb sehe ich erst mal keinen grassen Fehler aber ich habe auch eher
den Blick für VB.NET
Auf alle Fälle ist es ganz wichtig das der Mappingname des Tablestyles
absolut identisch mit dem Tabellennamen ist. Deshalb verwende ich.
Mappingname = DataTable.TableName wenn Source eine DataTable ist oder
Mappingname = DataSource.Tabeles(0).Tablename wenn Source ein Dataset ist
Das gleiche gilt für die Columns !
Vielleicht wäre es doch sinnvoll wenn du mal ein wenig mehr Code zeigst oder ihn etwas
erläuterst. Was genau funktioniert denn nicht ? Wird gar nix angezeigt ?
Jens
-
Ich bedanke mich erstmal dafür das überhaupt noch jemand geantwortet hat *g*
Ich denke mehr Code wird dir nicht viel bringen, hmm das einzige was evt. noch interessant wär, wär ja die Funktion wo er den SQL Befehl ausführt, aber der hat ja eig. nix mehr mit dem DataSet zu tun.
Ich versuch mal in kurzen Worten mein Programm zu erklären:
Erstmal programmiere ich auf einem PDA und benutze deswegen CFrameWork, ist aber denke ich nicht weiter schlimm, also mein Programm:
Alles läuft auf einem Formular, aber es gibt mehrere Panels, die ich nacheinander aufrufe wenn irgendwie nen Button gedrückt wird, das ganze verhält sich dann auf dem PDA wie mehrere Formulare, deshalb auch diese Zeile:
Code :1
this.zeigePanel(true,false,false,false);
So, man befindet sich erst in einem "Formular" wo man Daten eingeben kann (Artikelnummer, Bezeichnung, Datum usw.), dass ganze wird mit nem Speichernbutton in ne lokale DB abgelegt. Der Speichervorgang dürfte aber nicht weiter wichtig sein. Danach kann man auf nen "Zurück-Button" klicken und ruft damit den Code auf der wichtig ist und den ich schon gepostet hab.
Mit dieser Zeile hier ruf ich die Daten aus der DB ab:
Code :1
ds2 = test.DatenholenLocal("SELECT Sp1, Sp2 FROM Tabelle", "Tabelle", true);
Hier binde ich es an das DataGrid, was ich ja anpassen möchte:
Code :1
this.grdPosListe.DataSource = ds2.Tables["Table"].DefaultView;
Das ganze ist nen DataSet in dem die Daten aus dem SQL Befehl stecken.
Der Rest ist ja der Versuch nen TabelStyle einzubinden, was nicht funktioniert. Der Code den ich gepostet hab, ist alles aus dem Zurück Click Event, mehr steht da nicht drin, deshalb denke ich, ist auch mehr code unwichtig.
Was genau nicht funktioniert? Wenn ich den Zurück Button klicke, wird zwar das DataGrid angezeigt, jedoch ändert sich nix an dem Style des DataGrids und genau das will ich ja
Also die Tabelle sieht dann aus wie immer.
Hat dir meine Erklärung nun bisschen weiter geholfen?
Ich hab ja schon haufenweise im Internet gelesen und alle machen das eig. so wie ich, komischer Weise funktioniert es nicht! Deshalb bin ich auch stark davon überzeugt das es wahrscheinlich am MappingName liegt.Geändert von Jacizzle (09.05.06 um 09:13 Uhr)
Abul Hellis - Disaq Li Haui ;o)
-
09.05.06 09:46 #4
- Registriert seit
- Apr 2004
- Ort
- schweiz
- Beiträge
- 618
Mal n kleiner feiner anderer Lösungsansatz -->
Ne Kurze Erklärung--> Diesen Codeschnipsel verwende ich dafür, eine StoredProcedure in einem DataGrid abzubilden, dazu will ich nur jede dritte Spalte angezeigt haben, und dazu soll die Spalte den Titel in form von "01/2006" oder so haben. Dies ermögliche ich mit obigem Code. Durch das du den Typ der Column definierst (im BSP BoundColumn), kannst du für jede Spalte, die du in dein Datagrid einfügst, ganz eigene "Styles" verwenden, welche du unter objbc1. findest...Code csharp:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
dsMeil = new DataSet(); string date = selYearstr+selMonstr+"01"; string sqlGetSpMeil ="exec sp_MeilensteinFull "+date+""; SqlDataAdapter sqlDA = new SqlDataAdapter(sqlGetSpMeil,connection); sqlDA.Fill(dsMeil); int version =5; for(int i = 0; i < dsMeil.Tables[0].Columns.Count;i++) { BoundColumn objbc1 = new BoundColumn(); if(i<=1) { objbc1.DataField = dsMeil.Tables[0].Columns[i].ColumnName; objbc1.HeaderText ="Auftrag"; } else { objbc1.DataField = dsMeil.Tables[0].Columns[i].ColumnName; if(i == 3) { if(selMon <10) objbc1.HeaderText ="0"+selMon+"/" +selYear; else if(selMon <13) objbc1.HeaderText =selMon+"/" +selYear; else { selMon = selMon -12; selYear++; objbc1.HeaderText = "0"+selMon+"/"+selYear; } } else if(i == version) { selMon = selMon +1; if(selMon <10) objbc1.HeaderText ="0"+selMon+"/" +selYear; else if(selMon <13) objbc1.HeaderText =selMon+"/" +selYear; else { selMon = selMon -12; selYear++; objbc1.HeaderText = "0"+selMon+"/"+selYear; } version = version+2; } } if(i==0 ||i==2 ||i==4 ||i==6 ||i==8 ||i==10 ||i==12 ||i==14 ||i==16 ||i==18 ||i==20 ||i==22 ||i==24) objbc1.Visible=false; dgKap.Columns.Add(objbc1); dgKap.DataSource = dsMeil.Tables[0]; dgKap.DataBind() ; } sqlDA = null;
Vielleicht dient es dir als anderer Lösungsansatz, wie man den Style des Grids verändern kann..
mfg
ziop~~Be water my friend~~ by bruce
~~Der einfachste Weg, bietet die schwerste Lösungssuche~~ by emkey
*****************************
(\_/)
(O.o) This is Bunny. Copy Bunny into your signature
(> <) to help him on his way to world domination
.:Blödeleienschreiber des 1. offiziellen Sven Uwe Fan-Clubs:.
-------------------------------------------------------------------------------------
Mir sche*** egal wer dein Vater ist!! Wenn ich fische geht keiner übers Wasser!
-
Hallöchen..
Ich bedanke mich für die Hilfe, jetzt hab ich es zumindestens hinbekommen das die Spaltenbreite anpassbar ist, d.h. wohl das ich alles anpassen kann *g* Es lag wohl wirklich (habs ja auch schon so vermutet) an der MappingName - Eigenschaft. Habe es nun so gemacht wie JensG es geschrieben hat.
@ zioProduct: Den Code von dir schau ich mir aber auch noch an, sind bestimmt nochn paar interessante Sachen bei die ich noch gebrauchen kann.
@ JensG: Hat zwar noch ein paar Minuten gedauert bis ich verstanden habe das du VB benutzt Jens (habs überlesen) und deshalb ging das mit den runden Klammern nicht (man muss bei CSharp die eckigen nehmen), aber als mir das dann aufgefallen ist, hats funktioniert
Danke nochmal!Abul Hellis - Disaq Li Haui ;o)
Ähnliche Themen
-
Dynamics Frage / allg. Frage
Von dixone im Forum Cinema 4DAntworten: 7Letzter Beitrag: 01.09.10, 23:00 -
Frage-Antwort-Frage Spiel...
Von Vitus im Forum Fun-ForumAntworten: 15Letzter Beitrag: 26.08.08, 20:14 -
Frage zu dbx 231 EQ
Von FingerSkill im Forum Audiotechnik, Recording & Audio-SoftwareAntworten: 2Letzter Beitrag: 14.01.07, 06:19 -
[Frage:] Frage zu Passgen
Von Liftboy im Forum PHPAntworten: 6Letzter Beitrag: 04.08.05, 19:03 -
MySQL Tabellen verknüpfen (Anfänger Frage) + Frage zu Get
Von benurb im Forum PHPAntworten: 5Letzter Beitrag: 01.04.05, 13:00





Zitieren
Login





