4

我有一个 asp.net 标签 web 控件。我使用 jQuery .html() 函数动态更改其文本。当我尝试在服务器上获取标签的当前值时,它会显示页面加载时的原始值。有什么办法可以使标签的 jQuery 更改永久化,以便我可以在服务器上获取它们?

4

2 回答 2

1

您需要将 JQuery 更改镜像到另一个将在服务器端持续存在的控件中。

例如,使用一个隐藏字段,将runat="server"您的更改隐藏到此,然后这将在服务器上持续存在,即从隐藏字段读取标签更改

所以

jQuery

$('#labelID').html('New Text');

$('#hiddenFieldID').val('New Text');

服务器端

string labelText = hiddenFieldID.value;

这并不漂亮,但这是我发现的唯一方法。

JQuery 不与之交互,ViewState因此 JQuery 的任何更改都会在回发时丢失。这是我认为人们现在转向 MVC 的原因之一。回发架构不能很好地适应客户端的变化

于 2012-05-08T09:39:07.980 回答
0

我认为您不能开箱即用地做到这一点(尽管我可能是错的)。问题是标签不是 HTML 表单字段,因此它的值不会在回发时发送回服务器,因此将使用 ViewState 值或默认值,而不是更新后的值。

您可以一起破解一些东西,您还可以在隐藏字段中设置标签值,这将在回发时被发送回服务器,并在回发时使用它来填充标签的值(如果它已被更改)?

于 2012-05-08T09:38:25.203 回答