黑马程序员技术交流社区

标题: hidden属性的求解 [打印本页]

作者: 黑马杨锦喜    时间: 2012-10-9 23:41
标题: hidden属性的求解
请问一下这句话到底是干嘛的呢?  sb.Append("<input type='hidden' name='hiddenIsPostBack' value='1' />");

求解啊,谢谢

<%@ WebHandler Language="C#" Class="_06Caculate" %>

using System;
using System.Web;
using System.Text;

public class _06Caculate : IHttpHandler {
   
    public void ProcessRequest (HttpContext context) {


        string Num1 = context.Request.Form["txtNum1"];
        string Num2 = context.Request.Form["txtNum2"];
        int x = 0;
        int y = 0;
        int z = 0;

        if (!string.IsNullOrEmpty("hiddenIsPostBack"))
        {
            if (!string.IsNullOrEmpty(Num1) && !string.IsNullOrEmpty(Num2))
            {
                if (int.TryParse(Num1, out x) && int.TryParse(Num2, out y))
                {
                    z = x + y;
                }
            }
        }
        else
        {
            
        }
            
        StringBuilder sb = new StringBuilder();
        sb.Append("<form action='' method='post'>");
        sb.Append("<html><head><title>计算器</title></head><body>");

        sb.Append("<input type='text' name='txtNum1' value='" + x.ToString() + "'/>");
        sb.Append("<input type='text' name='txtNum2' value='" + y.ToString() + "'/> <br> =");

        sb.Append("<input type='text' name='txtSum' value='" + z.ToString() + "'/>  ");
        
        sb.Append("<input type='submit' name='submit' value='计算'/>");

        sb.Append("<input type='hidden' name='hiddenIsPostBack' value='1' />");
        
        sb.Append("<a href='04Register.ashx?a=james'>注册</a>");
        
        sb.Append("</form>");
        sb.Append("</body></html>");
        context.Response.Write(sb.ToString());
    }

    public bool IsReusable {
        get {
            return false;
        }
    }

}
作者: 雷向阳    时间: 2012-10-10 00:52
应该是把隐藏域里的值添加进去吧,隐藏域里的alue是1;应该是把一添加进去..
作者: 黑马杨锦喜    时间: 2012-10-11 18:25
雷向阳 发表于 2012-10-10 00:52
应该是把隐藏域里的值添加进去吧,隐藏域里的alue是1;应该是把一添加进去.. ...

好像不对,我修改了value的值,一样的效果; if (!string.IsNullOrEmpty("hiddenIsPostBack"))是用来判断隐藏值是否为空的,不知这里用这东西是不是做一个标记 的呢?求解
作者: 秦敖    时间: 2012-10-11 18:50
本帖最后由 秦敖 于 2012-10-11 18:53 编辑

("<input type='hidden' name='hiddenIsPostBack' value='1' />");这个隐藏域是为了实现回调作用的,也就是说通过获取这个隐藏域的值string hiddenIsPostBack=context.Request.Form["hiddenIsPostBack"];然后在判断其是否为空if (!string.IsNullOrEmpty("hiddenIsPostBack"))来判断对_06Caculate.ashx这个页面是第一次访问加载,还是因为提交表单回发而加载。(因为这个计算器的html代码输出和表单提交后的处理都是通过_06Caculate.ashx这个页面来完成。作者的本意是要实现,第一次用户访问这个页面是显示计算器的表单界面,当用户点击提交按钮后显示计算的结果)上述程序的错误之处在于:没有先通过string hiddenIsPostBack=context.Request.Form["hiddenIsPostBack"];获取。所以执行结果始终不会改变。
作者: 彭书雄    时间: 2012-10-11 19:12
这个隐藏域 ,作用应该是判断是否是第一次运行,因为有的代码需要第一次运行,而后面不运行,所以用这个隐藏域判断。在。net  aspx 文件里面好像有一个 ispostback属性,就是判断是否第一次运行的
作者: 黑马杨锦喜    时间: 2012-10-13 00:15
秦敖 发表于 2012-10-11 18:50
("");这个隐藏域是为了实现回调作用的,也就是说通过获取这个隐藏域的值string hiddenIsPostBack=context.R ...

你这个点评说的挺好 的,我的知识的深度还要继续花时间努力下,谢了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2