2

我在gridview控件中有两个文本框和一个标签,我在第二个文本框onblur事件属性中添加了一个javascript函数并在标签中显示结果,该函数工作正常并且结果显示在标签中,但是当我将网格数据保存到数据库中,标签返回 0 或空,但我能够看到值,如何克服这个问题。

谢谢并恭祝安康

4

2 回答 2

4

您的标签不会保留在 ViewState 中,因为它不包含作为“表单”控件。您可以使用隐藏的文本框来完成此操作,可能有更好的方法。

于 2010-02-18T17:46:51.370 回答
3

这是一个回答您的问题的链接。

http://www.mikesdotnetting.com/Article/65/ViewState-form-fields-labels-and-Javascript

如果我理解正确,(如果我错了,请纠正我)它是IPostBackDataHandler更多信息)在客户端更改时处理服务器输入字段控件中的数据(Javascript)。标签控件不是输入字段,因此不会保存在客户端中所做的更改。

这是上面链接的引用:

ViewState 的工作是管理对服务器控件初始状态的任何更改,如果这些更改是在服务器上以编程方式进行的,或者是否将用户交互所做的更改传递给服务器。这不包括恢复表单输入的值,例如文本框或复选框中的选定项目。有一个常见的误解,即表单值由 ViewState 管理。他们不是。从没有过。这些值完全由 IPostBackDataHandler 管理和恢复。

IPostBackDataHandler 对于在其他服务器端技术(例如经典 ASP、PHP 等)上长大的 Web 开发人员来说是一个巨大的福音。在“过去”的日子里,我们曾经不得不手动连接每个表单字段以显示最初发布的内容值,因此如果服务器端验证失败,则不会向用户显示一个空表单来重新填写。IPostBackDataHandler 意味着我们再也不必这样做了。

正如另一个答案中提到的,使用隐藏值来保存 Javascript 所做的更改应该可以工作。

于 2010-02-18T17:49:03.627 回答