2010-03-05 3 views
4

Les deux commandes suivantes sur ma page:problème asp.net LinkButton HyperLink

<asp:LinkButton ID="OpenLB" runat="server" >Open</asp:LinkButton> 
<asp:HyperLink ID="OpenHL" runat="server">Open</asp:HyperLink> 

Je les ai mis lors du chargement de la page comme ceci:

OpenLB.PostBackUrl = @"file:\\web\documents-emails\doc1.docx"; 
OpenHL.NavigateUrl = @"file:\\web\documents-emails\doc1.docx"; 

fonctionne OpenHL, il ouvre le fichier de texte.

OpenLB ne fonctionne pas, quand je clique dessus, je reçois un pop-up d'erreur qui dit:

Windows Internet Explorer ne peut pas trouver fichier « file: // Web // documents-courriels//doc1.docx '. Assurez-vous que le chemin ou l'adresse Internet est correct.

Il semble que l'URL est différente ou quelque chose, comment puis-je résoudre ce problème?

Répondre

6

Le LinkButton fonctionne en affichant la page Web sur le serveur en utilisant l'URL donnée. Il affiche le bouton dans le style d'un lien hypertexte, mais utilise javascript pour renvoyer le formulaire au serveur à l'URL donnée. Vous ne pourrez pas l'utiliser avec une URL file: car vous ne pouvez pas POSTER vers un fichier local. Le lien hypertexte crée juste une ancre qui résulte en l'emplacement du navigateur étant placé à l'url quand il est cliqué.

+0

D'accord. Le point de la PostBackUrl est de permettre à votre formulaire de publier sur une autre URL plutôt que l'action par défaut de publier sur la page elle-même. – smencer

0

Je pense que tout simplement que, dans un cas, vous naviguez dans le fichier, et il ouvre comme prévu l'autre vous demandez à après au fichier docx, quand il doit être une URL valide

0

Le comportement par défaut du bouton link est de publier sur une page aspx pour gérer l'événement post-retour en réponse à l'utilisateur final cliquant sur le lien. Le postbackurl est vide par défaut, indiquant le retour du lien sur la page en cours. La définition de la propriété postbackurl est destinée aux publications inter-pages, auquel cas vous gérerez l'événement click sur une autre page apsx.

MSDN Postbackurl Property

2

Un HyperLink est conçu pour créer un lien vers une autre page ou un fichier. C'est simplement un wrapper pour un tag <a>. Un LinkButton est conçu pour publier la page et déclencher un événement du côté serveur.

Assurez-vous d'abord d'utiliser le bon type de contrôle dans chaque situation.

Questions connexes