设置asp超链接值JS

sca*_*man 1 javascript asp.net

我有一个asp超链接.我想在javascript中设置此超链接的innerHTML和outerText.我怎么能实现这个目标?
我有以下代码:

var path='c:\folder\file.gif'
var HyperlinkObj = GetElementById('hl');
HyperlinkObj.innerHTML ='<a href='+path+'></a>'; //causes: htmlfile: Unknown runtime error
HyperlinkObj.outerText = 'file.gif'; //how can i get the file name from the path?
Run Code Online (Sandbox Code Playgroud)

rsb*_*rro 5

编辑:

以下示例显示如何HyperLink从javascript 设置ASP.NET 控件的属性.

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <script type="text/javascript">
        function setHyperlink(path) {
            var link = document.getElementById("<%= myLink.ClientID %>");
            link.href = path;
            link.innerHTML = getFilenameFromPath(path);
        }

        function getFilenameFromPath(path) {
            return path.replace(/^.*\\/, '');
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            Link: <asp:HyperLink id="myLink" runat="server"></asp:HyperLink><br />
            <input type="button" value="Set Hyperlink" onclick="setHyperlink('c:\\folder\\file.gif')" />
        </div>
    </form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

getFilenameFromPath功能来自这个问题的答案.

原始答案:

要从代码隐藏设置超链接控件,您希望使超链接成为服务器控件.假设您在MyPage.aspx中工作,请在首页添加以下内容:

<asp:HyperLink id="myLink" runat="server"></asp:HyperLink>
Run Code Online (Sandbox Code Playgroud)

然后,在代码隐藏中,例如在Page_Load中:

protected void Page_Load(object sender, EventArgs e)
{
    if(!Page.IsPostBack)
        SetupLink("myfilename.txt");
}

private void SetupLink(string filename)
{
   myLink.Text = filename;
   //Assumes the file is in the root of your web site
   myLink.NavigateUrl = string.Concat("~/", filename); 
}
Run Code Online (Sandbox Code Playgroud)

runat="Server"标记添加到超链接时,设计者应在MyPage.aspx.designer.cs文件中添加此控件的引用.它应该看起来像这样:

protected global::System.Web.UI.WebControls.HyperLink myLink;
Run Code Online (Sandbox Code Playgroud)

完成设置后,如果需要从Javascript访问超链接控件,可以使用ClientIDmyLink控件的属性.

<script type="text/javascript">
   var link = document.getElementById("<%= myLink.ClientID %>");
   alert(link);
</script>
Run Code Online (Sandbox Code Playgroud)

希望有所帮助.