0

以下代码适用于我的按钮,单击时会显示图像:

<input type="button" onclick='javascript:showImg("<%# FieldValue %>")' />

我想将其更改为超链接“显示”,但以下代码不起作用。

<asp:HyperLink ID="displayImg" runat="server" NavigateUrl='javascript:showImg("<%# FieldValue %>")'>Preview</asp:HyperLink>

它抛出错误:JavaScript 运行时错误:无效参数。

有什么帮助吗?

4

3 回答 3

1

你不应该使用这个NavigateUrl属性,那是一个 URL ......使用这个:

<asp:HyperLink ID="displayImg" runat="server" 
      PostBackUrl="#"
      onclick="showImg('<%# FieldValue %>');return false;">
      Preview</asp:HyperLink>

当您使用 ASP.NET 控件时,您需要坚持它们的功能,但请记住,您始终可以使用默认的 HTML 控件,在此示例中:

<input type="button" onclick="showImg('<%# FieldValue %>')" value="Preview" />

即使你想使用它,在你的代码隐藏文件中,只需添加一个runat="server",然后你就可以找到使用它的控件ID


这里有3种方法:

<a href="#" onclick="alert('hi!')">Preview 1</a>

<asp:HyperLink runat="server" NavigateUrl="#" onclick="alert('hi!')">Preview 2</asp:HyperLink>

<asp:LinkButton runat="server" PostBackUrl="#" OnClientClick="alert('hi!')">Preview 3</asp:LinkButton>

这将呈现:

<a href="#" onclick="alert('hi!')">Preview 1</a>

<a onclick="alert('hi!')" href="#">Preview 2</a>

<a onclick="alert('hi!');" href='javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$MainContent$ctl01", "", false, "", "#", false, true))'>Preview 3</a>

最后一个选项,它将始终 POST。

很简单,选择最好的方式来完成它,他们都这样做。

于 2013-01-08T11:52:27.553 回答
0

这是当您想在 HiperLink NavigateUrl 中绑定某些值时的正确示例: NavigateUrl="javascript:showImg('<%# FieldValue %>')"

于 2013-01-08T12:10:24.030 回答
0

或者...

 <a ID="displayImg" onclick='showImg("<%= FieldValue %>")'>Preview</a>

问题是 <%= FieldValue %> 在服务器标签内时无法正确解析(asp:hyperlink)

于 2013-01-08T12:01:10.817 回答