黑马程序员_学习日记12_非表单元素视图状态保存

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

 

我们通过一个DIV来实现一个数字自增的效果 来解释如何使用hidden元素保存非表单元素的视图信息。

这里特别说明一下 HTML元素分表单元素和非表单元素,表单元素就是input开头的元素,把它们放到一个

form 点击提交按钮的时候,可以再服务器通过表单元素的name属性索引到value值。

而其他的一些元素 比如DIV 之类的 不是表单元素,当你点提交的时候,DIV的信息是不会提交到服务器的。

我们现在就来做一个DIV里面的数字能够自增的例子,来解释下如何使用hidden保存非表单元素的数据。

方式一:

下面是TTML页面:

其中@num1就是DIV的显示内容的占位符

 

 

这是button(不是submit按钮)按钮的脚本代码:

它是在表单提交之前,将DIV中的内容赋给ID为hidden1的hidden的value属性,原因是hidden是表单元素,它可以提交到服务器,我们

在服务器可以通过它的name属性 获取到它的value值,于是就间接的获取到了DIV的内容了。

 

 

下面是一般处理文件的代码:

运行ashx,由于是第一次进入,我们将@num1占位符替换成0了、

然后当我们点自增按钮的时候,首先会执行javascript代码,此代码的作用我在上面已经说了,然后将表单提交到

服务器后台的一般处理文件,执行sum++的操作,于是就实现了DIV中内容自增的效果。

原理是 通过一个hidden表单元素,间接的保存DIV里的内容 来达到把DIV里的内容提交到服务器的这么一个过程。实质上,asp.net网页也是通过这种方式来保存当前HTML页

中非表单元素的属性值,以及表单元素中非value属性的属性值。它会全部保存提交到服务器,如果一个页面中有太多了HTML标签,那么视图状态中的数据量是很大的。

 

方式二:

我们可以把绑定当前非表单元素值得隐藏域元素的value值设为和当前元素占位符一模一样的形式。

在ahsx文件中,我们一开始会判断当前请求是第一次还是点了自增按钮 。如果是第一次,

我们就在服务器端自作主张的 把模板中的@num1替换成0,

由于hidden和 div中都有@num1这样一个占位符,所以它们两都会被替换掉。

在每一次用户点自增提交按钮将当前用户信息提交到服务器的时候,其实我们都是

从hidden中读取当前自增的数值的,DIV只不过是一个显示当前数值的容器罢了。真正起作用的

是hidden ,这也是视图状态中如何保存非表单元素值的一个方法。

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------
详细请查看: http://net.itheima.com/
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值