你不應該使用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。
簡單,選擇最好的方式來完成它,他們都做同樣的事情。
FYI:設置 「的javascript:」 作爲'的onclick =「JavaScript的內部協議: '在{EventName}屬性上都是多餘的es期待JavaScript內容。 – scunliffe
你剛剛在瀏覽器中嘗試過「查看源代碼」以查看傳入JavaScript函數的內容嗎?它傳遞一個字符串還是一個文字?我的感覺是,你不需要
JonRed