0

次のコードは、クリックすると画像を表示するボタンで機能します。

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

これをハイパーリンク'display'に変更したいのですが、次のコードは機能しません。

<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

または...

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

問題は、<%= FieldValue%>がサーバータグ(asp:hyperlink)内にある場合、正しく解析されないことです。

于 2013-01-08T12:01:10.817 に答える
0

HiperLinkで値をバインドする場合の正しい例を次に示します。NavigateUrl:NavigateUrl = "javascript:showImg('<%#FieldValue%>')"

于 2013-01-08T12:10:24.030 に答える