好吧,我有一個令人尷尬的簡單問題,希望有一個令人尷尬的簡單答案。我想獲得一個asp:ImageButton來顯示一條警告消息,其中包含來自我的代碼隱藏的變量。下面的代碼的過於簡化的版本:OnClientClick事件沒有註冊來自代碼隱藏的JavaScript警報
public string AlertMe
{
get
{
return "alert('hi');";
}
}
現在,當我嘗試訪問這樣說:
<asp:ImageButton ID="btn" runat="server" ImageUrl="/Images/img.ico" OnClientClick='<%=AlertMe%>'/>
我看回傳,但沒有警告消息,因爲如果它不能訪問我的財產。同時,這兩條線:
<%=AlertMe%><br />
<a onclick="<%=AlertMe%>">click this</a>
都工作正常和丹迪。 (第一個顯示javascript警報的代碼,第二個警報沒有問題。)
所以我最大的問題是:爲什麼一個asp控件的OnClientClick事件無法註冊警報?是否存在我缺少的明顯缺陷,還是我真的需要從代碼隱藏註冊整個事件?
我不會繼續沿着這種將您的行爲客戶端Javascript與編譯的服務器端代碼嵌入的路徑。我更喜歡在外部文件中使用不引人注目的Javascript(jQuery?),以保持邏輯上的分離。如果需要,您可以使用服務器端構造來確定要包含哪些.js文件。 –
我非常欣賞這個輸入。希望這是我可以放鬆自己,因爲我更加熟悉Javascript和jQuery。 – MadHenchbot