Hi zusammen, ich möchte, dass beim Paging in einem Gridview Checkboxen wieder markiert werden, falls sie das vorher schonmal waren. Dafür nutze ich das hier erklärte Prinzip.
Das Problem ist nur, dass es nicht funktioniert. Es scheint, als ob mein Code die Checkbox zwar aktualisiert, danach aber erst der Refresh der Seite gemacht wird und damit der Status wieder rausfliegt. Wenn ich dann meinen Code per ButtonClick manuell nochmal ausführe, sind die richtigen Checkboxen markiert...
ich habe auch schon versucht das onPageIndexChanged - Event zu verwenden, hat aber leider auch nichts gebracht.
foreach (GridViewRow row in GridView1.Rows) { if (row.DataItemIndex <= GridView1.Rows.Count) { int PersonId = Int32.Parse(GridView1.DataKeys[row.DataItemIndex].Value.ToString());
Moin, was steht denn in deinem Page_Load oder Init der Seite? Ist die Seite irgendwo online verfügbar? Ich vermute du setzt die Property Checked zu spät auf true. Ich vermute außerdem das der Button daher funktioniert, weil er die Seite erneut lädt - Und nicht weil er den Code nochmal ausführt. Prüfe bitte mal die Reihenfolge der Codeausführung und bau den Vorhandenen Button zu einem "Page Refresh Button" um der keine weitere Logik ausführt. Wie gesagt ... ich vermute eine falsche Reihenfolge. Grüße
A) 1. Datenbindung am GridView vornehmen im Event -> PageIndexChanged 2. Variante 1: SetCheckboxes() aufrufen im GridView-Event "DataBound" Variante 2: SetCheckboxes() aufrufen im PageEvent "PreRender"
B) Soll Dein "Promoterid" ein Kennzeichen sein, oder soll es eine Benutzerauswahl sein? Wenn es ein Kennzeichen ist, dann ermittle das Ergebnis so, dass Du eine "Boolean"-Spalte hast wo der das gewünschte Ja/Nein-Wert drin steht, und verwende zur Anzeige eine CheckBox-Column (readonly), dann musst Du die Häkchen nicht selbst setzen.