Tjena Om du tar view source på sidan så misstänker jag att i form taggen har du en path till default.aspx? När du då gör en postback så postas sidan till den sidan och självklart dyker just den sidan upp efter postback. Nu vet inte jag till 100% vad syftet med din sida, men du skulle kunna lägga in en Server.Transfer eller Redirect i clickeventet för kanppen som tar dig till rätt plats. Ah! Där har vi det. Det står faktiskt target="Default.aspx?sida=News". I själva verket borde det stå target="../?page=News". Hur kan man förebygga det? Testa med att själv sätta action i din form tagg på sidan, om du gör det så tror jag inte ASP.Net skriver över med sin, men är osäker på detta, har inte själv testat. Så jag vet inte om det fungerar. Jag skulle inte bry mig om detta utan skulle i click eventet peka om till rätt sida. Tjena Du skulle kunna lösa problemet med en user control som du återanvänder på varje sida. Finns det någon logisk förklaring varför du vill ha det så? (svarar på inlägg nr1) För att inkludera "sidor" i ASP.NET så använder man sig av UserControls.Postback går inte tillbaks till rätt sida
Föreställ er att jag är på denna sida: http://localhost/minapp/?sida=news
Default.aspx i katalogen minapp inkluderar då denna sida: /news/default.aspx
I filen /news/default.aspx finns en <asp:button> som utlöser Sub_Klick. Men istället för att köra samma sida (http://localhost/minapp/?sida=news) så hoppar applikationen till http://localhost/minapp/news/default.aspx.
Hur förebygger man detta? Jag har prövat att lägga in följande kod i global.asax.
<code>
Sub Application_EndRequest(Sender As Object, e As EventArgs)
If Request.IsAuthenticated And Request.Filepath <> "/minapp/Default.aspx" And IsNothing(Request.Form("__VIEWSTATE")) = False Then Response.Redirect (request.urlreferrer.absoluteuri)
End Sub
</code>
Men det skapar problem på andra håll.
Någon?Sv: Postback går inte tillbaks till rätt sida
/Fredrik NSv: Postback går inte tillbaks till rätt sida
Sv: Postback går inte tillbaks till rätt sida
/Fredrik NSv: Postback går inte tillbaks till rätt sida
Den kör tyvärr över mitt target-attribut i form-taggen.
Visst skulle jag kunna ordna det i klickhändelsen, men jag har tre sådana händelser på varje sida och uppåt tjugo sidor, så jag skulle helst vilja "centralisera" det.Sv: Postback går inte tillbaks till rätt sida
/Fredrik NSv: Postback går inte tillbaks till rätt sida
Du kan ju i din oncklick lägga in en server.transfer eller response.redirect om du vill föras till en annan sida än den du står på. Dock får du inte med dig den data du postar. Den kan du ju förvisso lägga in i queryn.
//Johan NSv: Postback går inte tillbaks till rätt sida
Detta kan skötas på många olika sätt, detta är ett:
<code>
<%@ Page Language="VB" %>
<script runat="server">
Public Sub Page_Init(Sender As Object, E As EventArgs)
Dim _ctx As HttpContext = HttpContext.Current
Dim _pageToView As String = "default"
If (Not _ctx.Request.QueryString("sida") Is Nothing) Then
_pageToView = _ctx.Request.QueryString("sida")
End If
Select Case _pageTOView.ToLower()
Case "default"
Dim _ctrl As Control = LoadControl("~/controlFolder/default.ascx")
plhContent.Controls.Add(_ctrl)
Case Else
Dim _ctrl As Control = LoadControl("~/controlFolder/" + _pageToView + ".ascx")
If (_ctrl Is Nothing) Then
plhContent.Controls.Add(New LIteralControl("Couldn´t find page."))
Else
plhContent.Controls.Add(_ctrl)
End If
End Select
End Sub
</script>
<html>
<head>
</head>
<body>
<form runat="server">
<asp:PlaceHolder id="plhContent" runat="server"></asp:PlaceHolder>
</form>
</body>
</html>
</code>
Som du ser har jag satt en "default" sida att visas.
Därefter kikar jag om det finns någon querystring som heter sida. Finns den ändra vilken sida som ska visas.
Läs in kontrollen och lägg till den på rätt ställe i sidan, i mitt fall en PlaceHolder.
cya,
/PatrikB
Läs på dig hur UserContols fungerar och labba lite med koden ovan.