ASP.Net标签的原始值是" xyz"。
我已将ASP.Net Label值更改为:
$("#<%= lblNew.ClientID %>").text("123");
它在网页上发生了变化。但是当我点击按钮并获得标签的值时,它会变回前一个值&#34; xyz&#34;而不是&#34; 123&#34;。
Response.Write(lblNew.Text);
我试图设置标签的html而不是下面的文字:但它也不起作用。
$("#<%= lblNew.ClientID %>").html("123");
如何通过Jquery更改值?感谢。
答案 0 :(得分:7)
这是因为标签文本值是从视图状态加载的。您的jquery更改了label的值,但没有更改在回发时加载它的值的视图状态.... 但是你想要改变标签文本......所以你可以像这样得到.......
string lblvalue=Request[lblNew.UniqueID] as string;
以下是了解视图状态如何使用标签...参考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!";
}
说明了发生的事件序列,突出显示了对Label的Text属性的更改需要存储在视图状态中的原因。
答案 1 :(得分:2)
要解决您所面临的问题,请使用隐藏字段并将其值与标签字段一起更新。当发生回发时,您可以从隐藏字段中读取更新的值
答案 2 :(得分:1)
尝试使用.val()
$("#<%= lblNew.ClientID %>").val("123");
可以在此处找到文档:http://api.jquery.com/val/#val-value
修改强>
我误解了您的问题,.text
应该没问题。我认为问题更多的是与回发有关。你能确认如何调用代码$("#<%= lblNew.ClientID %>").text("123");
吗?如果它在$(document).ready()
上,那么应该没问题。但这是一个动作的结果,当回发制作/重新加载DOM时会丢失。
答案 3 :(得分:1)
你不能改变Javascript / JQuery中的ASP.Net标签,并期望它们在回发时保持不变。
只有来自输入控件的值(如文本框,无线电控件,无线电按钮等)才会发布到服务器。