Avatar billede heloo Nybegynder
24. maj 2006 - 14:40 Der 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?
Avatar billede snepnet Nybegynder
24. maj 2006 - 14:52 #1
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.

Mvh
Avatar billede heloo Nybegynder
24. maj 2006 - 15:05 #2
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..

2/ oki
Avatar billede snepnet Nybegynder
24. maj 2006 - 15:16 #3
Halløjsa :o)

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.

Mhv
Avatar billede heloo Nybegynder
24. maj 2006 - 15:22 #4
det ser kanon ud ;-)
kigger lige på det... send bare et svar
Avatar billede snepnet Nybegynder
24. maj 2006 - 15:24 #5
Et svar kommer her... Spørg løs hvis du støder på ballade.
Mvh
Avatar billede snepnet Nybegynder
24. maj 2006 - 15:25 #6
Her kommer der i hvert fald et svar.
Mvh
Avatar billede heloo Nybegynder
25. maj 2006 - 15:05 #7
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 ;-)
Avatar billede snepnet Nybegynder
26. maj 2006 - 11:36 #8
Hej igen :o)

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
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester