2010-08-16 67 views
2

我正在使用<%= %>語法在JavaScript函數中傳遞html控件textarea id。我有一個問題,當我運行頁面時,保存了我的aspx頁面後,它成功運行,但是在一些頁面自動從HTML代碼中消失。 sombody可以解釋上面的語法,爲什麼它在給定的時間後從源代碼中消失 這裏是代碼語法解釋<%= %>

在執行我寫代碼和保存之前。

<textarea id="txtmsgchar" 
    cols="20" 
    name="txtmsgchar" 
    onkeyup="return taCount(this,'<%= lblcharcount.ClientID %>','<%= lbltotalmsg.ClientID %>')" 
    rows="10" 
    style="width: 477px; height: 111px"> 
</textarea> 

一段時間後,或當我打開該項目下一次,然後我發現下面的代碼

<textarea id="txtmsgchar" 
    cols="20" 
    name="txtmsgchar" 
    onkeyup="return taCount(this,'','')" 
    rows="10" 
    style="width: 477px; height: 111px"> 
</textarea> 

請告訴我爲什麼給定輸出來

+0

我想你錯過了一些代碼? – 2010-08-16 11:59:02

+0

@Tony:已經澄清,用戶在編輯窗口中未將代碼標記爲代碼,但現在它是可見的(@Neo:只需選擇您的代碼並在下次單擊代碼按鈕,或者它可以呈現不可見就像這裏所做的那樣)。 – Abel 2010-08-16 20:14:19

回答

0

它運行在C#或VB。 NET表達式。像DateTime.Now

1

它是執行的服務器代碼。表達式由lbltotalmsg.ClientID的值替換。

發送到客戶端的結果是爲此這樣的:

','some-client-id')" rows="10" style="width: 477px; height: 111px"> 
1

一段時間後,或當我下一次打開該項目,然後我找到下面的代碼

這似乎不可能,除非你不保存,或者除非你從瀏覽器看代碼視圖(即在頁面呈現之後)。另一個想法可能是你在一個連接到自動構建環境的版本控制系統中,如果它們包含編譯錯誤(但我懷疑任何構建環境會自動執行),它們可能會回滾您的更改。

無論如何,你的問題與<%= >本身無關,它只是解釋服務器端的表達式並輸出它的值。

更新:也許你的問題是:如果控制lbltotalmsglblcharcount是無形的(服務器端Visible="False"),他們不會呈現到客戶端,因此將有一個空ClientId