Трябва да съхраниш url-a, който искаш да посочиш в скрито поле и просто да зададеш NavigateUrl = "#"(долу съм показал). По този начин когато потребителят посочи линка, реалния URL няма да се покаже в дъното на браузъра.
След това закачи click event handler-а от страната на клиена за хиперлинка като направиш onlick атрибута да сочи към JavaScript функия,наречена navigate. Реалното пренасочване в нова страница става в тази функция.
В тази ситуация, ще виждаш само URL-а на текущата страница + #. Например,ако текущия URL е http://localhost/mysite/view.aspx , то ще се покаже http://localhost/mysite/view.aspx# в дъното на браузъра.
Какво ти трябва:
<asp:HyperLink runat="server" ID="hl" NavigateUrl="#"
onclick="navigate();">Some Text</asp:HyperLink>
<asp:HiddenField ID="hdnURL" runat="server" Value="http://www.microsoft.com" />
и малко JavaScript:
<script type="text/javascript">
function navigate() {
window.location.href = document.getElementById("<%=hdnURL.ClientID%>").value;
}
</script>
Друг начин да го направиш е да пренастроиш NavigateURL на хиперлинка(долу съм показал). С този подход, трябва първо да премахнеш NavigateURL преди да се рендерира съдържанието и да го съхраниш в глобална променлива, наречена linkUrl. Event-a, който се пуска преди да се рендерира съдържанието е pageLoad и ще го използваш точно него.
Глобални променливи в JavaScript се дефинират винаги извън методи.
При натискане на хиперлинка, можеш да вземеш стойността от променливата linkUrl и да пренасочиш към това място.
<script type="text/javascript">
function navigate(event) {
window.location.href = linkURL;
}
var linkUrl = null;
function pageLoad() {
var link = document.getElementById("<%=hl.ClientID%>");
linkURL = link.getAttribute("href");
link.setAttribute("href","#");
}
</script>