Gridview-RowCommand

17/12/2008 - 09:50 von S. Dirks | Report spam
Hallo Newsgroup,

ich habe zur Zeit folgendes Problem:

Ich erstelle im Codebehind eine Gridview und setze dort deren Eigenschaften
und Spalten. Desweiteren erstelle ich innerhalb des GridViews eine Spalte
mit Linkbuttons (Detailansicht), die ein weiteres Fenster mit der
Detailansicht öffnet. Soweit funktioniert auch alles. Wenn ich jedoch die
Detailansicht schließe und auf die Seite mit der Gridview zurückkehre und
zum Aktualisieren der Seite F5 drücke, wird das Gridview-Event "RowCommand"
erneut gefeuert, so dass das Detailansichtenfenster erneut erscheint. Wie
làsst sich dieses unterbinden?

Gruß Stefan

Ausschnitt aus dem Quellcode:


Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Handles Me.Load

[...]
Dim grid As New System.Web.UI.WebControls.GridView
[...setzen der GridView-Eigenschaften und Spalten...]
AddHandler grid.RowCommand, AddressOf grid_RowCommand
[...]

End Sub


Protected Sub grid_RowCommand(ByVal sender As System.Object, ByVal e As
System.Web.UI.WebControls.GridViewCommandEventArgs)

If Not sender Is Nothing Then
Dim gv As GridView = CType(sender, GridView)
Select Case (e.CommandName.ToUpper())
Case "DETAILS"
Dim index As Integer =
Convert.ToInt32(e.CommandArgument)
Dim selectedRow As GridViewRow = gv.Rows(index)
Dim dataKey As
System.Collections.Specialized.OrderedDictionary =
DirectCast(gv.DataKeys(index).Values,
System.Collections.Specialized.OrderedDictionary)
Dim detailID As String =
dataKey.Item(gv.DataKeyNames(0)).ToString()
RunJavascript(Me.Page, "details",
"window.open('detail.aspx?ID=" & detailID"',
'_blank','heightP0,widthu0,titlebar=yes,top0,left%0,
scrollbars=yes,status=no,resizable = yes ');")
End Select
End If
End Sub
 

Lesen sie die antworten

#1 Patrick Finger
17/12/2008 - 12:41 | Warnen spam
Hallo

Wieso erstellst Du die Gridview denn im CodeBehind?
Das geht viel eleganter deklarativ im aspx..

In Deinem Fall vermute ich dass der LinkButton das Problem ist.
Mit F5 "wird die zuletzt ausgeführte Aktion wiederholt" - in deinem Fall
ist das der Klick vom LinkButton welcher im Hintergrund ein http-post
auslöst... also wird Dein Fenster2 erneut geöffnet.

Ich würde den LinkButton durch einen html-Hyperlink <a
href="Fenster2.aspx" target="_blank" /> ersetzen.

HTH

Gruss

Ähnliche fragen