2013-06-26 53 views
4

ASP.Net標籤的原始值爲「xyz」。ASP.Net標籤值在JQuery中已更改,但在回發時未更改

我已經改變了ASP.Net標籤值如下:

$("#<%= lblNew.ClientID %>").text("123"); 

它改變了網頁上。但是,當我點擊按鈕並獲取標籤的值時,它會變回到之前的值「xyz」而不是「123」。

Response.Write(lblNew.Text); 

我試着設置標籤的html而不是如下文字:但它也不起作用。

$("#<%= lblNew.ClientID %>").html("123"); 

如何獲取由Jquery更改的值?謝謝。

+0

使用HiddenFiled 讀取更新的價值請看看:http://stackoverflow.com/questions/19266872/jquery-set-text-value-is-lost-after-postback – atromgame

+0

http://stackoverflow.com/questions/19266872/jquery-set-text-value丟回郵寄 – atromgame

回答

6

這是因爲標籤文本值是從視圖狀態加載的。您的jquery更改了標籤的值,但沒有更改視圖狀態,它在回發時加載了值。 但是您希望更改標籤文本..所以你可以得到它這樣.......

string lblvalue=Request[lblNew.UniqueID] as string; 

這裏是和例子來理解視圖狀態標籤是如何工作的?refrence MSDN

<asp:Label runat="server" ID="lblMessage" 
    Font-Name="Verdana" Text="Hello, World!"></asp:Label> 
<br /> 
<asp:Button runat="server" 
    Text="Change Message" ID="btnSubmit"></asp:Button> 
<br /> 
<asp:Button runat="server" Text="Empty Postback"></asp:Button> 
And the code-behind class contains the following event handler for the Button's Click event: 
private void btnSubmit_Click(object sender, EventArgs e) 
{ 
    lblMessage.Text = "Goodbye, Everyone!"; 
} 

說明序列發生的事件,突出爲什麼更改爲標籤的文本屬性需要存儲在視圖狀態中。 enter image description here

+0

非常感謝...... :) –

1

嘗試.val()代替

$("#<%= lblNew.ClientID %>").val("123"); 

文檔可以在這裏找到:http://api.jquery.com/val/#val-value

編輯:

我誤解你的問題,.text應該罰款。我認爲這個問題更多的是與回發有關。您能否確認代碼$("#<%= lblNew.ClientID %>").text("123");的調用方式?如果是在$(document).ready()那麼它應該沒問題。但是,這是一個行爲的結果,當回發/ DOM被重新加載時會丟失。

1

您不能在Javascript/JQuery中改變ASP.Net標籤,並期望它們在回發時保留。

只有來自輸入控件(如文本框,無線電控件,單選按鈕等)的值被髮布到服務器。

2

爲了解決所面臨的你的問題是使用隱藏域,並與標籤字段一起更新它的值,當回發會發生,你可以從隱藏字段