黑马程序员技术交流社区

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

作者: 黑马杨锦喜    时间: 2012-10-13 00:21
标题: hidden属性的求解

谢谢各位的指教,此问题已得到解决了,引用我认为最佳 的答案:

("<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"];获取。所以执行结果始终不会改变。


原问题如下:

请问一下这句话到底是干嘛的呢?  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-13 02:46
大半夜老眼昏花,看了第一句還以為你在問html的,編輯掉!!!

呃,恭喜你,自己解決了,我就打打醬油就好了




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