[C#] Datagrid bewerken

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Cryothic
  • Registratie: September 2001
  • Laatst online: 04-09-2024
Ik zit met het volgende.

Ik heb een datagrid, die gevuld wordt met dvd's.
Elke dvd heeft 1 of meer genres.
Die worden tijdens het ophalen netjes door de database uit de genre-tabel gevist, en als titels comma-seperated achter elkaar geplaatst.

Dus dan krijg je dit:
code:
1
2
3
4
titel     | genres
-----------------------------
film1     | Genre1, Genre2
film2     | Genre6, Genre3

Tot zo ver geen probleem.
Maar nu wil ik inline gaan editten.
Ik heb het nu zo ver, dat als ik hem in edit mode zet, het veld "genred" veranderd in een linkje "bewerken" die een divje kan pop-uppen, waar dan alle genres als checkboxen in kunnen.

Mijn probleem zit hem echter in het aanvinken van die checkboxen.
Ik wil natuurlijk wel, dat als je hem opent, de juiste genres al aangevinkt zijn.
Maar tot nu toe heb ik daar nog geen success mee gehad.

Ik heb geprobeerd in de EditDataItem() functie de checkboxen aan te roepen, maar ik krijg ze niet aangesproken. De ID die ik aan de checkboxlist toe ken, kent ie daar niet.
Ook op datagrid.item.cells[1].controls krijg ik niks te pakken, want dat lijkt me niet het edit item, maar de tekst versie.

Ook heb ik geprobeerd in de ASPX gewoon een DataValueField en een DataTextField te koppelen, maar dan moet ik ook een datasourceID mee gaan geven. En ik wil niet met een datasource op m'n aspx werken als het niet nodig is.

Heeft iemand hier toevallig ervaring mee die mij weer een stap in de goede richting kan krijgen?
Alvast bedankt.

Acties:
  • 0 Henk 'm!

  • boe2
  • Registratie: November 2002
  • Niet online

boe2

'-')/

Kijk eens naar het ItemDataBound event. Tijdens dit event kan je de data manipuleren die in je tabel terechtkomt.

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind.' - Pratchett.


Acties:
  • 0 Henk 'm!

  • Kickasz
  • Registratie: April 2003
  • Niet online
Ik neem aan dat je een event handler geplaatst hebt op je edit link? Zo ja, dan kun je door middel van onderstaande voorbeeld uitlezen welke genres je hebt:

code:
1
2
3
4
5
6
7
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
    {
        int i = Convert.ToInt32(e.NewEditIndex.ToString());
        string s = dt.Rows[i]["genre"].ToString();

        //jouw functie waaraan je de genres aan door kunt geven.
    }

Acties:
  • 0 Henk 'm!

  • Cryothic
  • Registratie: September 2001
  • Laatst online: 04-09-2024
Ik weet welk record er ge-edit wordt.
Ik heb in de EditDataItem() functie namelijk al staan dat de EditItemIndex van de grid gelijk moet zijn aan de e.Item.ItemIndex.

Dat werkt.
Ik kan daar alleen m'n controls in de edit-template niet aanspreken.

In de ItemDataBound lijk ik er idd wel bij te kunnen. Al is het wel erg omslachtig.
Iets in de zin van:
(CheckBox)e.Item.Cells[3].Controls[1] etc :D

Acties:
  • 0 Henk 'm!

  • BM
  • Registratie: September 2001
  • Laatst online: 17-09 20:37

BM

Moderator Spielerij
Cryothic schreef op woensdag 16 december 2009 @ 11:08:
In de ItemDataBound lijk ik er idd wel bij te kunnen. Al is het wel erg omslachtig.
Iets in de zin van:
(CheckBox)e.Item.Cells\[3].Controls\[1] etc :D
Dat zou al iets netter kunnen door FindControl te gebruiken, ipv een index.

Xbox
Even the dark has a silver lining | I'm all you can imagine times infinity, times three