J Jon Medlem sedan juli 2001 1 304 inlägg Frågan 1 okt. 2003 13:02 #1 Skumt problem:
Helt plötsligt får jag felmeddelande när jag ska radera en post i ett datagrid. Koden som smäller är:
int id = Convert.ToInt32(DataGrid1.DataKeys[e.Item.ItemIndex].Tostring());
Jag använder sen id för att radera posten.
Det hela ligger i en delete_cklick funktion som anropas och det funkar.
e är av typen DataGridCommandEventArgs
Det skumma är att det funkade för ett par timmar sen. Vet inte vad jag kan ha gjort?
Nåja. Felmeddelandet är att indexet låg utanför intervallet.
jag har debuggat och e.Item.ItemIndex får rätt värde. Problemet är som sagt att DataGrid1.DataKeys verkar vara helt tomt.
Förslag eller erfarenheter mottages varmt :)
R renholm Medlem sedan apr. 2001 2 266 inlägg Kan ha något att göra med ViewStaten. Visas datan men datakeys funkar inte?
J Jon Medlem sedan juli 2001 1 304 inlägg Ja. Datan visas och själva e.Item.ItemIndex blir rätt.
R renholm Medlem sedan apr. 2001 2 266 inlägg Skumt, har inte själv råkat ut för något liknande och antar att du kollat att datakeyfield ligger kvar i koden.
Hittade denna KB-artikel, kanske kan vara något. http://support.microsoft.com/default.aspx?scid=kb;en-us;813832
Har du testat att söka på http://support.microsoft.com/?
J Jon Medlem sedan juli 2001 1 304 inlägg Har letat utan att finna svar...
KB-artikeln handlar om e.Item.ItemIndex, vilket ju blir rätt för mig.
Nåja. Jag får leta vidare.
Kan det vara nåt med att det blir en postback och datakeys försvinner nånstans kanse? Skall undersöka i morgon.
Tack för hjälpen i vilket fall :)
NETwork Medlem sedan juni 2001 1 732 inlägg Som sagt, kolla att datakeyfield är satt i datagriden, har du gjort det? Sen ett helt annat tips för lite mindre kod, det räcker att skriva så här om din datakey är en int (vilket jag gissar att den är):
int id = (int)DataGrid1.DataKeys[e.Item.ItemIndex];
J Jon Medlem sedan juli 2001 1 304 inlägg Sådärja!
Det var DataKeyField som hade "hoppat bort" helt plötsligt.
Varför vet jag inte, men tack för hjälpen :)