2010-11-30 17 views
0
 <asp:HyperLink 
     ID="hyper1" 
     runat="server" 
     NavigateUrl='<%#string.Format("~/PLayer.aspx?ID={0}&Type={1}",Eval("arrange_by_id"),Eval("value"))%>'><%# Eval("value")%></asp:HyperLink> 

J'ai mis ce format de chaîne dans ma NavigateUrl pour passer un querystring dynamique en fonction de l'élément cliqué!Comment laisser mon contrôle Web utilisateur détermine automatiquement l'URL de la page où il est placé

mais vous voyez la première partie dans le format de chaîne où il est dit "~/PLayer.aspx" je veux que le contrôle utilisateur change automatiquement cette partie en fonction de l'endroit où il est placé!

Répondre

0

que diriez-vous:

NavigateUrl='<%#string.Format("{2}?ID={0}&Type={1}", 
    Eval("arrange_by_id"),Eval("value"), Page.ResolveUrl("~/Palyer.aspx"))%>' 
+0

Que sort Page.ResolveUrl ("~ PLayer.aspx")? Je ne pense pas que ce soit le bon format, car le PLayer.aspx est exactement ce qui va changer, car le contrôle pourrait être placé dans ~/PLayerNEW.aspx par exemple! alors comment ça se fait c'est constant! – lKashef

+1

ok, plutôt que la Page.ResolveUrl (..) essayez Request.AppRelativeCurrentExecutionFilePath –

+0

A travaillé comme un charme: D..Veuillez mettre à jour votre réponse pour être accessible aux autres utilisateurs ... Marqué comme réponse – lKashef

0

Vous pouvez essayer Request.ServerVariables ["SCRIPT_NAME"], il renverra le nom de la page actuelle.

0

Vous n'avez pas besoin de déplacer le contrôle de l'utilisateur d'un endroit à. Vous ne pouvez obtenir le nom de la page en cours qu'à partir de Request.Url, Request.RawUrl ou Request.ServerVariables["SCRIPT_NAME"].

Vous pouvez enregistrer dynamiquement le contrôle utilisateur pour modifier le chemin lorsque vous le souhaitez. Pour une référence sur l'enregistrement dynamique du contrôle utilisateur see this

+0

Vous vous êtes trompé! Je n'ai pas besoin de déplacer le contrôle d'un endroit à l'autre! ... J'ai créé un contrôle qui sera utilisé sur plus d'une page, donc je le réorienterai plus d'une fois, ce que je dois faire est pour changer le code "~/PLayer.aspx" pour être automatiquement ajusté à ~/any_dir/any_page.aspx (fitch l'URL de la page où il est réfréné, au lieu de créer un contrôle pour ~/PLayer.aspx et un autre pour ~ /NewFolder/PLayerNew.aspx, etc) vous m'avez? – lKashef