none
不知道这个是不是页面缓存问题呢?请高手指教! RRS feed

  • 常规讨论

  • 有个投票系统,页面上有100多个选项需要选择,用户选择完往往需要半个多小时,甚至1个小时才能选择完,然后点击提交按钮,我在程序中做了判断,如果有任何一项没有正确选择就不通过,按钮点击事件中的判断出错的代码是这样的:

    Response.Write("<script>alert('提示:操作错误,不能提交!');history.go(-1)</script>");
    Response.End();
    可是时间长了后,要是出错了,那js返回go(-1)的时候,页面就重新加载了,以前选择的都不在了,得重新选择,很麻烦,时间短了没关系!这个是哪里的问题?该怎么设置或操作才能避免这样的问题呢?或者说这个是不是要设置页面过期时间?谢谢!
    2009年7月7日 7:56

全部回复

  • 条件多,最好用 js 判断,在用户输入数据后马上判断是否正确。全部输入完成当然也行,但若用户输入不正确的数据过多,会造成多次提示,用户体验降低
    知识改变命运,奋斗成就人生!
    2009年7月7日 9:06
    版主
  • 我的问题可能没有写明白,是这样:
    我做了一个如下的测评系统:
    项目/被评价人  张三  李四  王五  杨六  马七  许八  田九 
     项目一: 优 秀
    良 好
    一 般
    较 差
    不了解
    优 秀
    良 好
    一 般
    较 差
    不了解
    优 秀
    良 好
    一 般
    较 差
    不了解
    优 秀
    良 好
    一 般
    较 差
    不了解
    优 秀
    良 好
    一 般
    较 差
    不了解
    优 秀
    良 好
    一 般
    较 差
    不了解
    优 秀
    良 好
    一 般
    较 差
    不了解 
     项目二:              
     项目三:              
     项目四:              
     项目五:              
    例如这样的表格,很多,表格都是根据项目的多少和评价人的多少动态生成的,表单也全部动态生成的html表单,每组都有一个唯一的ID,然后员工来选择,可能需要花费半个小时甚至一个小时才能选择完,然后我在提交按钮中的代码是这样:
    //遍历被评价人ID数组
            foreach (string charge in CgeID)
            {
                //遍历评价项目ID数组
                foreach (string clss in CssID)
                {
                      //判断是不是全部进行过选择
                      if (Request["radio" + int.Parse(clss.ToString()) + "_charge" + int.Parse(charge.ToString()) + ""] == "" || Request["radio" + int.Parse(clss.ToString()) + "_charge" + int.Parse(charge.ToString()) + ""] == null)
                    {
                  string sql = "";
                        string chargestr="";
                        string classstr="";
                        sql = "select EvaUser from Eva_charge where ID=" + charge;
                        using (SqlDataReader dr = SH.ExecSqlDataReader(sql))
                        {
                            if (dr.Read())
                            {
                                chargestr = dr["EvaUser"].ToString();
                            }
                        }
    
                        sql = "select BClass,Class from Eva_class where ID=" + clss;
                        using (SqlDataReader cdr = SH.ExecSqlDataReader(sql))
                        {
                            if (cdr.Read())
                            {
                                classstr = cdr["BClass"].ToString() + ":" + cdr["Class"].ToString();
                            }
                        }
    
                        Response.Write("<script>alert('提示:被评议人:“" + chargestr + "”的评价项目“" + classstr + "”没有选择或操作错误,不能提交!');history.go(-1)</script>");
                        Response.End();
                    }
                }
            }
    在这里的时候,要是出错了,就返回,但是时间长了,页面就会重新加载,所有的选项就都初始化了,还得重新来,该怎么做呢?
    2009年7月7日 9:35
  • 请删除history.go(-1)代码。
    2009年7月7日 9:52
  • 删除根本就不行!
    2009年7月7日 10:31
  • 用return;来替代Response.End();该方法截断了对客户端的发送。
    2009年7月7日 10:54