我在这样的页面上有一个输入控件:
<input type="button" causesvalidation="false" runat="server" id="resetButton" value="Iptal" onclick='return resetForm("<%=projectValidationSummary.ClientID%>");' />
什么时候渲染
<input name="ctl00$ContentPlaceHolder1$EditForm$resetButton" type="button" id="ctl00_ContentPlaceHolder1_EditForm_resetButton" value="Iptal" onclick="return resetForm("<%=projectValidationSummary.ClientID%>");" />
"<%=%>"
任何人都可以告诉我为什么会这样吗?
解决方法
<%=%>只能在文字html中使用,不能在服务器控件属性上使用.
相反,你应该我们数据绑定<%#%>,在你的情况下,我认为你试图在客户端触发javascript函数,然后你的代码应该是这样的:
<asp:button causesvalidation="false" runat="server" id="resetButton" text="Iptal" onclientclick='<%# String.Format("return resetForm(\"{0}\");",projectValidationSummary.ClientID) %>' />
在服务器端,您应该使用此代码绑定属性(可能在Page.Load事件中):
if(!this.IsPostBack) { this.resetButton.DataBind(); }