Für ein ASP.NET-Projekt musste ich die Seitennavigation eines Suchergebnisses selbst programmieren. Dabei hatte ich das Problem, die Nummer der angeklickten Seite zu übergeben (Globale Variablen speichern ihren Wert nicht von einer Server-Rundreise zur nächsten).
Mit dem onClick-Event des Link-Button musste ich also folgende Funktion aufrufen, damit die Seitennummer in den Viestate (=Hidden-Field welches codiert die Zustände aller Steuerelemente eines Webforms beinhaltet) geschrieben wird:
<script runat="server">
Sub Page_Load(ByVal Sender As Object, ByVal E As EventArgs)
End Sub
private property aktuelle_Seite() as integer
Get
If IsNothing(ViewState.Item("aktuelle_Seite")) Then
Return 1
End If
Return ViewState.Item("aktuelle_Seite")
End Get
Set(ByVal Value As Integer)
ViewState.Item("aktuelle_Seite") = Value
End Set
end property
Protected Sub Link_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim linkSeite As LinkButton = DirectCast(sender, LinkButton)
if linkSeite.CommandArgument.Length = 0 then
aktuelle_Seite = 0
else
aktuelle_Seite = Convert.ToInt16(linkSeite.CommandArgument)
End If
End Sub
</script>
Mit Link_Click() wird die Nummer der angeklickten Seite eingelesen und der Eigenschaft aktuelle_Seite() zugewiesen, dabei wird der Wert in den Viewstate geschrieben. Nach der Rundreise zum Server kann ich nun die aktuelle Seite aus der Eigenschaft aktuelle_Seite() auslesen.