asp.net
2009-07-10 82 views 6 likes 
6

我有这样一个页面上输入控制:为什么<%=%>标记呈现为" <%=%> "?

<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(&quot;&lt;%=projectValidationSummary.ClientID%>&quot;);" /> 

我用页面上<%=%>标签,但它呈现为

&quot;&lt;%=%>&quot; 

灿有人告诉我为什么会发生这种情况?

+0

您的输入是还是控件? – Kane 2009-07-10 12:31:01

+1

我认为问题可能有不同的答案,具体取决于你正在尝试做什么。这是一个JavaScript,JSP或ASP? – 2009-07-10 12:35:09

+0

它是asp.net页面和<输入控制有runat服务器规范。,我也试过安德鲁的想法,但没有改变发生:( – dankyy1 2009-07-10 12:45:51

回答

4

<%=%>仅在文字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(); 
} 
1

因为resetForm中的字符串存在HTML编码。

0

这可能很明显,但您确定文件类型是否合适?即JSP为一个ASP或ASP的ASP?

这应该在编码之前被编译器捕获。在编译页面之前是否有可能进行预处理?您的ID已更改,并添加了名称元素...

3

您无法将渲染块与文本的值进行混合和匹配。试试这个

onclick='<%= "return resetForm(\"" + projectValidationSummary.ClientID + "\");" %>' 
3

删除runat="server" - 你不需要它,如果你正在做一个文字写(<%=

所以:

<input 
    type="button" 
    causesvalidation="false" 
    id="resetButton" 
    value="Iptal" 
    onclick="return resetForm('<%= projectValidationSummary.ClientID %>');" /> 

或者使用数据绑定来代替:

<input 
    type="button" 
    causesvalidation="false" 
    id="resetButton" 
    runat="server" 
    value="Iptal" 
    onclientclick="return resetForm('<%# projectValidationSummary.ClientID %>');" /> 

//in code behind: 
resetButton.DataBind(); 

.Net不喜欢在服务器渲染控件以外的文字写入面板。

3

由于您已经在使用runat =“server”,所以最好在代码背后设置此属性。

resetButton.attributes.add(“onclick”,“.....”);

相关问题