asp.net
2009-07-10 78 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」,「.....」);

相關問題