2012-01-19 28 views
0

任何人都可以提供一個解釋,爲什麼asp:imagebutton給我一個形式很糟糕的html錯誤,而HTML輸入元素沒有?我知道它是關於在onclientclick 作業中的findcontrol()。它們的格式完全相同,但也許它們不應該是?html和asp.net控件/元素中的findcontrol()奇怪嗎?

<ItemTemplate> 
    <input type="image" src="Resources/info.png"   onclick="toggle('<%# Container.FindControl("PresetUploadDescription").ClientID %>');return false;" /> 
    <asp:ImageButton ImageUrl="Resources/info.png" OnClientClick="toggle('<%# Container.FindControl("PresetUploadDescription").ClientID %>');return false;" ToolTip="info" ID="Description" runat="server"/> 
.... 

回答

0

您不能在服務器上執行的控件中使用<%...%>構造。 (runat =「server」)

<%#...%>用於數據綁定或Eval類型語句。

<%= ...%>相當於一個Response.Write語句,它看起來像您正在嘗試執行的操作(寫出某個控件的ClientID)。不幸的是,這也不起作用 - 你會得到一個

服務器標籤不能包含<%...%>結構。錯誤

要解決,你需要通過代碼發送到的OnClientClick屬性添加到ImageButton控件頁面背後:

Description.Attributes.Add("OnClientClick", 
"toggle('" + FindControl("PresetUploadDescription").ClientID + "');return false;");