有人可以提供一个解释,为什么asp:imagebutton给我一个格式错误的html错误而html输入元素没有?我知道它是关于onclientclick中的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 :(得分:0)
您无法使用&lt;%...%&gt;构造在服务器上执行的控件中。 (RUNAT = “服务器”)
&LT;%#...%GT;用于数据绑定或Eval类型语句。
&LT;%= ...%GT;相当于一个Response.Write语句,它看起来就像你想要做的那样(写出某个控件的ClientID)。不幸的是,这也行不通 - 你会得到一个
服务器代码不能包含&lt;%...%&gt;结构体。错误
要修复,您需要通过Code Behind页面将OnClientClick属性添加到Imagebutton控件:
Description.Attributes.Add("OnClientClick",
"toggle('" + FindControl("PresetUploadDescription").ClientID + "');return false;");