asp.net页面中怎么样把控件viewstate中保留的上一次的值(比如Text)读出来?(后台用C#) 我想把一个TextBox的viewstate中保存的Text的上一次值读出来跟本次值进行比较,该怎么实现啊,请求各位高手帮忙!!!!!!!!!!!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 上次:string str1 = viewstate["TextBox1.text"].ToString();本次:string str2 = TextBox1.text;if(str2 == str1){ ...} 本次上次输入的是hello,这次输入的是hello world,本次输入提交后hello world就是本次的值,hello就是上次的值 简单的办法是在pageload中将现在的值保存到session起来,下一次postback时则拿现在的viewstate中的值跟session中的值比较.具体的逻辑你自己考虑吧 用session是可以实现,但是我想asp.net提供viewstate机制,应该有更简单的方法jingye721(我メ他妈的,谁欺负我,我全拿小本记着!) 用你的方法得出的两个值都是一样的 刚调的例子:你参考一下 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"); } } } 多谢jingye721我用你的方法试验过了,可以实现,但是需要再加一个专门的ViewState项,有没有办法直接读取前一次的值,不用再增加一项新的ViewState项 还有在客户端用javascript怎么来实现?多谢多谢 楼主还是先看看viewstate有关的资料好了.http://www.yzcc.com/2004/11-18/10043434265.html即使把textbox的enableviewstate设为false, 它的值仍然在, 是loadpostdata, 不是viewstate ding...by the waygot some score.^_^ 不用再增加一项新的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"); } } } 这个比较工作已经有人帮你做了,就是OnTextChanged事件,不需要你自己做。如果你还想把上次的值取回来,那就要你自己另外开一个ViewState来存放了——你要自己继承TextBox做一个新的控件,例如用ViewState["OldText"]将当前值保存下来,这样下一次Postback你就可以将值取出来了。至于TextBox本身依赖的那个ViewState["Text"],你不要去管,那是人家内部的事情,你要扩展它的功能就做在外部好了。 XML小问题 listbox 三级联动 *W*请问如何用NameValueCollection获得Appconfig里的节点的值? 急....asp.net javascript问题? 三层开发中,业务层应该怎么表示呢? 绝对路径问题,简单且分高,请进 这个语句怎么写? 大家有 可以移动的模拟c/s一样的窗体的控件,方便编程? 关于drawing的字符如何打印出来 asp.net如何实现类似资源管理器(win+e)状的界面 **********请问关于js操作table的问题,马上揭贴************ 关于html文件中的控件拖动问题!
本次:string str2 = TextBox1.text;
if(str2 == str1)
{
...
}
hello world就是本次的值,hello就是上次的值
你参考一下
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");
}
}
}
我用你的方法试验过了,可以实现,但是需要再加一个专门的ViewState项,有没有办法直接读取前一次的值,不用再增加一项新的ViewState项
http://www.yzcc.com/2004/11-18/10043434265.html
即使把textbox的enableviewstate设为false, 它的值仍然在, 是loadpostdata, 不是viewstate
got some score.^_^
---------------------
是不用啊,那也得先给这个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");
}
}
}