====ASP.NET中session的timeout设置时间达到后和在配置文件中对Session_End使用session清空方法均不起作用的问题,高手帮忙====如下方法依旧不行,打开网页刷新后依然能输出原有的SESSION值!
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
binddata();
Session["member"]="lihongge"; TextBox1.Text=Session["member"].ToString();
}
Session["member"]=null;
}
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
binddata();
Session["member"]="lihongge"; TextBox1.Text=Session["member"].ToString();
}
Session["member"]=null;
}
解决方案 »
- 一个也面包含多个iframe引发的一些问题
- virtual相关问题
- type.gettype总返回null,实在是不知道怎么回事
- 谁能用继承TextBox的方法,写一个只能输入数字的文本框???
- 我的大三程序设计 ,这里有题目,高手快来帮忙啊,我认他做大哥
- 数据绑定问题。 不知道具体怎么回事,有的可以出现数据,有的没有
- C#把mssql数据表保存到"C://LIST.TXT";(数据表有3列,保存到txt后,每个列用逗号隔开)
- 大神们,帮忙解决一下,我的vs智能提示变成这样子了
- 怎样在WebMethod中使用自定义的机构或者类????????????????????????
- 调查一下现在大家都是用什么版本的VS.net
- 为DataGrid添加CheckBox控件,并实现“全选”功能
- TREENODE问题,高手进来看看。
如果你把if(!IsPostBack)曲调的话就可以解决了,因为你在session有效的时候就把session的值给了TextBox1.Text,而当session无效的时候又没有对TextBox1的值进行改变,所以当然会出现你上面的情况了
Session.Abandon();方法也不行!!!
{
if(!IsPostBack)
{
binddata();
}
Session["member"]="lihongge";
TextBox1.Text=Session["member"].ToString();
Session["member"]=null;
}
你是回发页面啊,不会再执行
binddata();
Session["member"]="lihongge";TextBox1.Text=Session["member"].ToString这几句啊,所以空也没关系照样会有值啊,不明白?看看IsPostBack的描述
用其它方法檢驗一下就知道啦!
比如用alert重新調用一下session的值,看看還有沒有.
[email protected]
{
if(!IsPostBack)
{
binddata();
Session["member"]="lihongge"; TextBox1.Text=Session["member"].ToString();
}
else
{
TextBox1.Text=string.Empty;
}
Session["member"]=null;
}
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
binddata();
Session["member"]="lihongge";//Session在这里被赋值
TextBox1.Text=Session["member"].ToString();//在这里输出,也就是说在这一句话被执行的时候,Session永远有值。
}
Session["member"]=null;//到这里Session被清掉,换言之,不管怎样,这个页面显示出来后,Session就没了,因为这里总是会执行。
}
结论,无法了解你这段程序向证明什么,能证明什么。他的输出结果永远是文本框里面一个"lihongge"。
因为回发所有的控件值由ViewState保存,所以不论回发多少次,等多久,文本框里面永远都是"lihongge"
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
binddata();
Session["member"]="lihongge"; //就算timeout了,这里又再次给session赋值。
TextBox1.Text=Session["member"].ToString();
}
Session["member"]=null;
}改改:
private void Page_Load(object sender, System.EventArgs e)
{
if( Session["member"] == null ) //看看session空的吗?
{
TextBox1.Text= "NULL"; //空的说一下
Session["member"] = "Assign Value"; //给个值
}
else
{
TextBox1.Text= (string)Session["member"];//不空的话显示内容
}
}预期结果:
第一次访问:显示NULL
第二次访问:显示Assign Value
每次访问都是 Assign Value
等timeout访问:NULLOK?
可能是这个属性没搞明白
大家都会犯错,晓得原因就好了~~
获取一个值,该值指示该页是否正为响应客户端回发而加载,或者它是否正被首次加载和访问。如果是为响应客户端回发而加载该页,则为 true;否则为 false。
示例
[Visual Basic, C#, JScript] 下面的示例测试 IsPostBack 属性的值以在加载了 Page 时按条件为所有验证服务器控件调用 Page.Validate 方法。
[Visual Basic]
Sub Page_Load
If Not IsPostBack
' Validate initially to force the asterisks
' to appear before the first roundtrip.
Validate()
End If
End Sub[C#]
void Page_Load() {
if (!IsPostBack) {
// Validate initially to force asterisks
// to appear before the first roundtrip.
Validate();
}
}
{
binddata();
Session["member"]="lihongge";
}
TextBox1.Text=Session["member"].ToString();哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....哈,好高兴啊....突然间恍然大悟,我的目的是通过这个小程序测试SESSION是否效,但因为一个小问题困绕了我3天.原来我以为打开这个网站后再等到超时后的时间(我设的是1分钟)再刷新该页,就不会执行!ispostback里面的语句,也就不会再给session赋值,再看刷新后textbox1的输出是否清空了.没想到我这么想的是错误的,其实是只要打开该网页等超时后再刷新还会执行ispostback里面的,因为打开该页后我没有回发数据,!ispoback就为真的,所以就是执行!!!!!!大家以后要注意哈!!!