2012-07-30 65 views
4

雖然我指定的文本標籤(lblDoc),用於儘管我更改了標籤的文字,但它仍然返回初始值,我該如何解決?

<%FillRpt(rpt, lblDoc.Text , UserId);%> 

lblDoc.Text是標籤。

<asp:Label ID="lblDoc" runat="server" Text="Label" Visible="false"></asp:Label> 

我改變了Text值,但仍然返回「Label」。我該如何改變它?

的情況下低於:

$.ajax({ 
       type: "POST", 
       url: "FileManager.aspx/foo", 
       data: "{}", 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function(msg) { 
        $("#<%=lblDoc.ClientID%>").text(selectedPath); 
        <%FillRpt(rpt, lblDoc.Text , UserId);%> 
       }, 
      }); 

回答

0

我通過使用Web方法解決了返回JSON數據的問題。
而在這之後

$.ajax({ 
       type: "POST", 
       url: 
       data: 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function(msg) { 
        //......... 
        }); 
       }, 
       error: function(msg) { 

       }, 
      }); 
中籤部分

,我做我想做的。例如,我將一些數據附加到任何標記,如

$("#stackOverflow").append(....) 
+0

替代方法,它解決了這個問題。 – 2012-08-01 05:28:51

0

爲什麼你需要的<%的標籤?你應該能夠做到:

$("#lblDoc").text(selectedPath); 
+0

因爲我的lblDoc是一個asp.net控件。 – 2012-07-30 07:14:10

2

是要更新的客戶端瀏覽器在Label控制的客戶表示,但是這個值不會在服務器代碼的原因有兩個閱讀:

  • 當你在網頁上做一個HTML後,只有表單輸入字段被髮送到服務器時,Label控制呈現爲<span id="<ClientID>">因此跨度的內容將不被作爲數據發送給服務器

  • 即使span內容標籤被髮送到服務器,它的價值將被存儲在ViewState中的Label值覆蓋

您的代碼將無法正常工作的方式,你正在嘗試以上原因,並且(據我所知)ViewState字段不能使用JavaScript解密

作爲替代方案:

  1. 不斷變化代表Label

  2. span標籤的文本添加一個隱藏字段,當您更改在JavaScript中Label文字,在這個隱藏字段複製相同的值,最後,在你的服務器代碼使用此值來更改Label.Text屬性

相關問題