我想把一个TextBox的viewstate中保存的Text的上一次值读出来跟本次值进行比较,该怎么实现啊,请求各位高手帮忙!!!!!!!!!!!!!

解决方案 »

  1.   

    上次:string str1 = viewstate["TextBox1.text"].ToString();
    本次:string str2 = TextBox1.text;
    if(str2 == str1)
    {
      ...
    }
      

  2.   

    本次上次输入的是hello,这次输入的是hello world,本次输入提交后
    hello world就是本次的值,hello就是上次的值
      

  3.   

    简单的办法是在pageload中将现在的值保存到session起来,下一次postback时则拿现在的viewstate中的值跟session中的值比较.具体的逻辑你自己考虑吧
      

  4.   

    用session是可以实现,但是我想asp.net提供viewstate机制,应该有更简单的方法jingye721(我メ他妈的,谁欺负我,我全拿小本记着!) 用你的方法得出的两个值都是一样的
      

  5.   

    刚调的例子:
    你参考一下
        protected void Page_Load(object sender, EventArgs e)
        {
            data();
        }
        protected void bt1_Click(object sender, EventArgs e)
        {
            ViewState["text"] = tb1.Text;
        }
        protected void data()
        {
            string str1 = tb1.Text;
            if (ViewState["text"].ToString().Length > 0)
            {
                if (str1 == ViewState["text"].ToString())
                {
                    Response.Write("haha");
                }
                else
                {
                    Response.Write("hoho");
                }
            }
        }
      

  6.   

    多谢jingye721
    我用你的方法试验过了,可以实现,但是需要再加一个专门的ViewState项,有没有办法直接读取前一次的值,不用再增加一项新的ViewState项
      

  7.   

    还有在客户端用javascript怎么来实现?多谢多谢
      

  8.   

    楼主还是先看看viewstate有关的资料好了.
    http://www.yzcc.com/2004/11-18/10043434265.html
    即使把textbox的enableviewstate设为false, 它的值仍然在, 是loadpostdata, 不是viewstate
      

  9.   

    ding...by the way
    got some score.^_^
      

  10.   

    不用再增加一项新的ViewState项
    ---------------------
    是不用啊,那也得先给这个ViewState赋值啊:
        protected void Page_Load(object sender, EventArgs e)
        {
            data();
        }
        protected void bt1_Click(object sender, EventArgs e)
        {
            ViewState["text"] = tb1.Text;
        }
        protected void data()
        {
            string str1 = tb1.Text;
            if (null != ViewState["text"] && ViewState["text"].ToString().Length > 0)
            {
                if (str1 == ViewState["text"].ToString())
                {
                    Response.Write("haha");
                }
                else
                {
                    Response.Write("hoho");
                }
            }
        }
      

  11.   

    这个比较工作已经有人帮你做了,就是OnTextChanged事件,不需要你自己做。如果你还想把上次的值取回来,那就要你自己另外开一个ViewState来存放了——你要自己继承TextBox做一个新的控件,例如用ViewState["OldText"]将当前值保存下来,这样下一次Postback你就可以将值取出来了。至于TextBox本身依赖的那个ViewState["Text"],你不要去管,那是人家内部的事情,你要扩展它的功能就做在外部好了。