我们都知道asp.net的服务端控件在呈现到浏览器的时候生成的代码还是HTML代码,但为何它就行保存上次输入的值呢?
      在设计的时候我们写一句<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>,但在页面代码中我们会看到<input name="TextBox1" type="text" ></asp:TextBox>没给它一个初始日期,它的值通过JS来填充的。当我们点击提交的时候,总得不到它的值,都是空串,就算是给了初始化日期,在浏览器中已经改变它的值,但提交到cs代码中,日期还是初始化的那个,这是怎么回来呢?
      把输入框设为只读后,也就只有后台cs代码才能修改这个输入的ViewState的值了。
      我们可以通过HiddenField代替它,在JS中修改输入框的值的同时也把它的值给一份给HiddenField,在后台的cs代码直接取得HiddenField的值就可了。这是个投机取巧的方法,在很多时候我们用JS在界面做的一些值的修改,回到cs代码里都得不到自己要得到的值,因为JS没有直接修改到ViewState,我们只能通过这些小方法得到。
      上面所说的不一定正确,如果那位朋友感得问题,请指入。谢谢!

相关文章: