1

我已禁用控件(标签、按钮等)的视图状态和用于测试目的的页面。

现在,当我在客户端更改标签的文本并拦截按钮的单击事件时,标签仍然显示服务器之前发送的文本。

那么发生了什么?我需要能够更改客户端上的数据并将其提供给服务器。

这是怎么做到的?

4

2 回答 2

0

您需要做的是添加一个隐藏的输入

在您的表单上添加:

<asp:HiddenField runat="server" id="hiddenHolder" />

然后在客户端单击事件时,当您更改标签的文本时,也会更改value.hiddenHolder

在您后面的代码中,您可以通过以下方式获取值:

string LabelText = hiddenHolder.Value;

这样,您在客户端所做的更改可供服务器使用

于 2013-03-18T21:44:03.390 回答
0

标签spans在客户端呈现;因此,您将无法在服务器端捕获更改,因为它们不是输入元素。

ASP.NET 给您一种能够以编程方式更改标签文本的错觉,这仅仅是因为它使用 ViewState 在每次回发时存储/检索此信息。通过禁用它,您将放弃使用此“功能”。

于 2013-03-18T20:48:01.977 回答