黑马程序员--.Net学习日记——Input和div版本自增

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

黑马程序员--.Net学习日记——Input和div版本自增

 

练习:

input版本的自增

 

htm页面代码:

    <body>

<form action="Handler.ashx">

<input type="hidden" name="ispostback" value="true" />

<input type="text" name="number" value="@value" /><input

type="submit" value="自增" />

</form>

</body>

 

ashx页面代码:

 public void ProcessRequest (HttpContext context) {

        context.Response.ContentType = "text/html";

       

        string ispostback = context.Request["ispostback"];

        string number = context.Request["number"];//通过表单得到的数

据都是string类型

        if (ispostback == "true")//说明是点击自增进来的,需要把当前数

值自增

        {

            int i = Convert.ToInt32(number);

            i++;

            number = i.ToString();

        }

        else

        {

            number = "0";

        }

       

        string fullpath = context.Server.MapPath("HTMLPage.htm");//

接填文件名得不到,必须转换为全路径

        string content = System.IO.File.ReadAllText(fullpath);

        content = content.Replace("@value", number);//将文件中的占位

符替换为值

        context.Response.Write(content);

       

        //context.Response.Write("Hello World");

    }

 

div版本的自增:

htm页面代码:

 

<body>

<form action="Handler.ashx">

<input type="hidden" name="fanhui" value="true" />

<input type="hidden" name="num1" value="@value" />

<div>@value</div>

<input type="submit" value="自增" />

</form>

</body>

 

ashx页面代码:

 

 public void ProcessRequest (HttpContext context) {

        context.Response.ContentType = "text/html";

        string fanhui = context.Request["fanhui"];

        string value = "0";

        if (fanhui == "true")

        {

            value = context.Request["num1"];

            int i = Convert.ToInt32(value);

            i++;

            value = i.ToString();

        }

        string fullpath = context.Server.MapPath("HTMLPage.htm");

        string content = System.IO.File.ReadAllText(fullpath);

        content = content.Replace("@value", value);

        context.Response.Write(content);

        //context.Response.Write("Hello         World");

    }

为什么单使用div在服务器取不出来值呢?因为不是服务器来读取客户的网页,

是浏览器收集客户在表单中输入的字段,然后形成请求参数发给服务器处理程序

,由于没有把div当前的的innerText发给服务器,所以服务器无法得知当前的值,

也不好幻想有办法能将divinnerText提交给服务器,因为只有设定了name

input,textarea,selectvalue属性值才会被提交给服务器.

 

实现div内文本的自增,因为服务器不记得上次给浏览器的值是什么,而且不像

input那样会将上次的值重新提交回来,因此浏览器需要用一个隐藏字段将上次

的值保存下来.

 

非表单元素无法将客户端的元素之传递给服务器端,即使是表单元素也只能传递

value,对于属性值比如背景颜色,大小等也是无法传递的,因此对于这些值都

要存在隐藏字段中,这就是ASP.NETViewState实现原理

 

其实div中的只是起到显示作用而已,使用IE"开发人员工具"修改div

innerText,然后点击按钮发现只并没有按照我们修改以后的递增.而修改input

版本的则有效果.

 

 

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

详细请查看:http://net.itheima.com/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值