获取动态更改的 asp.net 标签的值

Posted

技术标签:

【中文标题】获取动态更改的 asp.net 标签的值【英文标题】:get value of dynamically changed asp.net label 【发布时间】:2012-05-16 18:52:40 【问题描述】:

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

【问题讨论】:

在服务器端更改。 您能否提供更多详细信息 - 为什么当页面没有回发时这是一个问题。如果您只是在页面加载时执行此操作,请按照其他评论者所说的那样执行并在服务器端设置。为什么需要在客户端上? 【参考方案1】:

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

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

所以

JQuery

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

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

服务器端

string labelText = hiddenFieldID.value;

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

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

【讨论】:

好主意,但这只有在服务器上有回发时才有效【参考方案2】:

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

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

【讨论】:

以上是关于获取动态更改的 asp.net 标签的值的主要内容,如果未能解决你的问题,请参考以下文章

asp.net怎么获取页面动态加载进来的用户自定义控件里面的值。。

asp.net 中继器 - 获取行项_DataBound 的值

ASP.NET WebForm中JavaScript修改了页面上Label的值,如何在后台代码中获取

动态创建的 asp.net 控件在回发后消失

Asp.Net Cache,从缓存中修改对象并更改缓存值

Javascript 不适用于 ASP.NET 上的 Timer Tick 方法