2012-03-15 63 views
3

我读过,asp.net中的视图状态存储控件属性跨回发的值。 可以说我有,有一个文本框Asp.net Viewstate不保存控件的样式

<asp:TextBox ID="fldFileId" runat="server"></asp:TextBox> 

,然后通过JavaScript客户端,我得到的元素的引用的页面,然后设置边框风格正是如此

refToTextBox.style["border-style"] = "dashed"; 

在回发,边框样式消失,文本框恢复到原来的样子。但是在VS2010中看到一个asp:TextBox的属性它的一个'BorderStyle'属性。 为什么这个属性没有保存在视图状态中是否有原因?

回答

2

设置值客户端不会更新ViewState。你必须为ViewState设置样式服务器端来存储它。或者,您可以:

  1. 回发后重新运行JavaScript。
  2. 将样式存储在Cookie中并使用JavaScript恢复样式。
  3. 找到一个JavaScript库,在客户端 (不推荐)修改ViewState。
+1

因为该值被发布到服务器端。检查代码隐藏中的Request.Form对象('Request.Form(MyTextBox.UniqueID)')以查看值。 – pete 2012-03-15 01:39:30

+0

谢谢,我在发表该评论几分钟后意识到这一点,并决定删除它。记录的评论是:“那么为什么我在文本框中输入的值在回发之后仍然存在”。 – x1886x 2012-03-15 01:42:55