24. maj 2006 - 14:40Der er
7 kommentarer og 1 løsning
Hjælp til datagrid
1/ jeg har et datagrid som jeg binder xml data på fra en xml fil. men jeg skal også have en kolonne hvor der skal vises et lille billede. men billedet det skal kun vises i rækker som har et id der findes i en tabel i en tabel i min db..... hvad kan jeg gøre??
2/ på mit datagrid har jeg også en kolonne med checkboxe. når man klikker på en submitknap på siden skal jeg så have fat i de rækker der er checkket. hvordan gør jeg det?
1/ Ligger dine billeder i xml'en - eller ligger de bare i filsystemet så du kan nå dem via en virtuel sti direkte?
Mht. til det med om billedet skal vises eller ej - så kan du gøre det ved at abbonnere på ItemDataBound-eventet på dit grid, og så der kigge på de data der bindes til - og vise billedet hvis det skal vises.
2/ foreach(DataGridItem item in ditDataGrid) { CheckBox cb = item.FindControl("ditCheckBoxId") as CheckBox; if(cb != null) { bool checked = cb.Checked; } } Forudsætter at du har sat en template kolonne ind, hvor du har indsat en checkbox, og givet den id'et ditCheckBoxId.
hej snepnet 1/ nej billedet ligger ikke i xml filen (bare en grøn og rød prik gif som ligger i mit project). poblemet er at jeg skal chekke op mod min db tabel og de id'er (i grittet) der findes i tabellen skal have en grøn prik og de der kke findes i tabellen skal have en rød prik..
Så sæt et billede ind i din template: <asp:Image id="imgStatus" runat="server" ImageUrl="red.jpg" />
Og abbonnér pp ItemDataBound, hvor du laver noget i denne stil:
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { // få fat i data: DataRowView row = e.Item.DataItem; // find id int id = (int)row["id"]; // check om det eksisterer i basen if(RowExists(id)) // en metode du så må implementere { // skift billedet til det grønne hvis det er tilfældet Image img = e.Item.FindControl("imgStatus"); img.ImageUrl="green.jpg"; } }
Du kan godt gøre det mere deklerativt hvis du hellere vil det, men du kommer jo under alle omstændigheder til at lave en metode der kan checke om du har en passende række i basen.
da du nu er så go og flink kommer her lige lidt mere ;-) det der bindes på mit datagrid er jo xml. Når bruger har markeret de row's han vil skal jeg lave en ny xml fil med kun de rows der er valgt. hvordan gør jeg egentelig det? Skal nok give flere points hvis der er ;-)
Jeg arbejder stort set aldrig direkte med xml, så jeg kan ikke lige give dig den bedste måde at gøre det på.
Du kan få en løsning baseret på datasets (altså selfølgelig med xml-filer som "backend"), men du må gerne lige skrive om du forventer at holde på ressourcen (dataset'et / xml'en) mellem postbacks.
Mvh
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.