Méthode pour contourner les frames

Contenu du snippet

Voilà, il s'agit d'une méthode qui permet d'éviter l'utilisation des frames. (Pour ceux qui, comme moi les ont en horreur ...)
On crée donc une page principale (ici index.aspx) qui servira à contenir les autres pages appelées à partir des liens.
Je crois que le code est assez clair, testez le.

Source / Exemple :


' //// index.aspx.vb

Imports System.Data.SqlClient
Imports System.IO
Imports System.Collections.Specialized

Public Class index
    Inherits System.Web.UI.Page

    Public HTM As New StringWriter
    Public lien As String

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

   Try
      Dim pos As Long = InStr(1, Request.RawUrl.ToString, "p=")
      If (pos > 0) Then
         Dim lien_int As String = Right(Request.RawUrl.ToString, (Len(Request.RawUrl.ToString) - pos - 1))

'On verifie l'existence d'un autre paramètre dans le querystring
         pos = InStr(1, lien_int, "&")
         If (pos > 0) Then
            lien_int = Left(lien_int, (pos - 1)) & ".aspx?" & Right(lien_int, (Len(lien_int) - pos))
         Else
            lien_int = lien_int & ".aspx"
         End If
         lien = lien_int
         Server.Execute(lien, HTM)
       Else
         Server.Execute("test.aspx", HTM)
       End If
    Catch ex As Exception
      Response.Write(ex.ToString)
    End Try
End Sub

end class

' //// index.aspx
<table>
   <tr>
     <td><img src="uneimage"></td>
   </tr>
   <tr>
     <td>
        <table>
          <tr>
            <td align="left" valign="top">
                <a href="index.aspx?p=test>Page de test</a>
                'on peut envoyer des paramètres dans le querystring
                <a href="index.aspx?p=test2&t=bonjour>Page de test 2</a> 
            </td>
            <td><% response.write (htm.tostring) %></td>
          </tr>
        </table>
      </td>
    </tr>
</table>

----------------------------------------------

' //// test.aspx 

<table><tr><td>Page test</td></tr></table>

----------------------------------------------

' //// test2.aspx 

<table>
   <tr>
     <td>
        Page test2
       <% response.write(request.querystring("t") %>
     </td>
   </tr>
</table>

Conclusion :


On a donc la possibilté d'envoyer des paramètres en Querystring aux pages appelées, mais pour ça, il faut que ceux ci soient placé après le paramètre "p" et non avant sinon ceux ci sont envoyés à la page index.aspx

Exemple
<a href="index.aspx?o=untest&p=test&o2=unautretest>Unlien</a>
le paramètre o sera envoyé à la page index.aspx et non à test.aspx tandis que o2 sera envoyé aux 2 pages.

Allez j'espère que ça aidera , ciao

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.