GridView: Zeile selektieren über Checkbox

16/09/2008 - 14:01 von Tobias Trumpfheller | Report spam
Hallo,
VWD 2008 Express Edition, Win XP mit SP3

Ich möchte gerne, dass in der Tabelle des GridViews beim Anzeigen eine
aktivierte Checkbox automatisch die Zeile fett selektiert. Die Daten des
GridViews wird über eine SQL-Server-Tabelle gefüllt. Ich habe das
folgendermaßen umgesetzt:

Protected Sub btn_Lieferaten_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles btn_Lieferaten.Click
MultiView1.ActiveViewIndex = 1
Dim i As Integer
Dim cb As New CheckBox
For i = 1 To Me.GridView2.Rows.Count - 1
cb = GridView2.Rows(i).FindControl("Checkbox1")
If cb.Checked Then
MsgBox("Gefunden - " & Me.GridView1.Rows(i).Cells(2).Text)
cb.Font.Bold = True
End If
Next i
End Sub

Sobald der Code beim "If cb.checked then" ankommt, wird die Fehlermeldung:

"Ausnahmedetails: System.NullReferenceException: Der Objektverweis wurde
nicht auf eine Objektinstanz festgelegt."
Was muß oder kann ich tun, damit das funktioniert?

Vielen Dank.

Gruss Tobias
 

Lesen sie die antworten

#1 Holger Vorberg
16/09/2008 - 14:33 | Warnen spam
Protected Sub btn_Lieferaten_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles btn_Lieferaten.Click
MultiView1.ActiveViewIndex = 1
Dim i As Integer
Dim cb As New CheckBox
For i = 1 To Me.GridView2.Rows.Count - 1
cb = GridView2.Rows(i).FindControl("Checkbox1")
If cb.Checked Then
MsgBox("Gefunden - " & Me.GridView1.Rows(i).Cells(2).Text)
cb.Font.Bold = True
End If
Next i
End Sub

Sobald der Code beim "If cb.checked then" ankommt, wird die Fehlermeldung:

"Ausnahmedetails: System.NullReferenceException: Der Objektverweis wurde
nicht auf eine Objektinstanz festgelegt."



in dem Fall ist "cb" sicherlich null, was bedeutet, dass der Aufruf von
.FindControl("Checkbox1") nicht erfolgreich war.
Und wenn ich nicht ganz falsch liege, dann kann das auch nicht erfolgreich
sein, weil du .Rows(i).FindControl() benutzt hast, und damit deine
Checkbox in der GridView Zeile suchst. Sie müsste aber doch in einer .Cell()
stecken, oder?

MfG
Holger Vorberg

Ähnliche fragen