textbox 简单问题... 

chessman_mak 2009-04-13 06:07:06
各位大侠们,我在做一个留言板的时候遇到了一个问题..

我的功能是这样的. 用户留言后按preview的button就可以跳转到下一页去看看,然后确定我误之后就再按SEND的button发出去.. 如果有问题的话可以按modify的button跟转回上一页去修改..

我之前遇到过页面跳转后值保留的问题.. 现在我用的是先把所以 的值放入SESSION里面传到下一页, 如果要修改.就跳转回上一页,再从session里面把值放进每一个textbox里面..

这一切看来还OK.. 不过现我就发现了一个问题. 就是当我修改的时候, 页面跳回第一页后, 我改了textbox的内容再按preview后, 在第二个页面里的内容却没有改变..

我debug过我的代码.. 第一页的textbox.text根本没有改变即使我修改的textbox的内容..


顺带提一下, 我之前试过用javascrit:window.history.go(-1)这个来返回上一页. 不过有IE7里面 就不可以保留之前输入的内容.. 但是firefox里面就可以.. 为什么呢??


以下是我的代码.. feedback.aspx 是第一页, feedbackReview.aspx 是第二页..


feedback.aspx


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;



public partial class feedback : System.Web.UI.Page
{

clsPushData push = new clsPushData();
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["method"].ToString() == "1")
{
title.Text = Session["title"].ToString();
subject.Text = Session["subject"].ToString();
subject2.Text = Session["subject2"].ToString();
description.Text = Session["content"].ToString();
name.Text = Session["name"].ToString();
email.Text = Session["email"].ToString();
country.Text = Session["country"].ToString();
}
}


protected void preview_Click(object sender, EventArgs e)
{
// Session.Abandon();
Session["title"] = title.Text;
//if (subject.Text == "other")
//{
Session["subject"] = subject.Text;
Session["subject2"] = subject2.Text;
//}
//else
//{

// Session["subject"] = subject.Text;
// Session["subject2"] = subject2.Text;
//}
// Session["content"] = null;
Session["content"] = description.Text;
Session["name"] = name.Text;
Session["email"] = email.Text;
Session["country"] = country.Text;
Response .Redirect ("feedbackReview.aspx");
}



}


feedbackReview.aspx


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;


public partial class feedbackReview : System.Web.UI.Page
{

protected void Page_Load(object sender, EventArgs e)
{
subject.Text = Session["subject"].ToString();
content.Text = Session["content"].ToString();
title.Text = Session["title"].ToString();
name.Text = Session["name"].ToString();
email.Text = Session["email"].ToString();
country.Text = Session["country"].ToString();
}

protected void modify_Click(object sender, EventArgs e)
{
Response.Redirect("feedback.aspx?method=1");
}
}



谢谢各位....
...全文
97 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
chessman_mak 2009-04-13
  • 打赏
  • 举报
回复
所有问题解决.. 结贴
chessman_mak 2009-04-13
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 tch198821 的回复:]
Session的默认保存时间是20分钟,这个时间范围之内你可能改变不了它的值
[/Quote]

但是.. 我将feedback.aspx.cs中的page_load里面的代码移到页面上.. 就所以问题都解决了.. 这是为什么呢? 我觉得不会是默认保存时间的问题..
tch198821 2009-04-13
  • 打赏
  • 举报
回复
Session的默认保存时间是20分钟,这个时间范围之内你可能改变不了它的值
chessman_mak 2009-04-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 jiangtianyin 的回复:]
引用 2 楼 walkghost 的回复:
最简单的办法。点预览的时候,弹出一个仿模式窗口层,这样不必考虑页面见传值或者其他问题。
如果你不想那么做,那你可以在用户点预览的时候先把数据保存到数据库中,然后再跳转到预览页面,等用户返回的时候,你就再把数据从数据库中拉出来,填充,然后再让用户编辑。


我最经也做过类似的功能,就是用的这种方法,你可以在存入数据库的时候返回这条纪录的ID号,然后根据这个ID去修改纪录…
[/Quote]

这种方法是好.. 不过.我考虑到如果用户用的不是宽带的话. 数据经常传入数据库再拿出来的话. 可能会很慢.. 所以我还是想做那种点击button后弹出一个window.. window里有个botton是send那就最好了..

顺带一提..

我在textbox中的内容带有回车换行.. 但是当传值到下一页时就没有换行.. 这是什么呢?? 是因为session中不支持这样?? 还是? 我应该怎样解决呢??
jiangtianyin 2009-04-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 walkghost 的回复:]
最简单的办法。点预览的时候,弹出一个仿模式窗口层,这样不必考虑页面见传值或者其他问题。
如果你不想那么做,那你可以在用户点预览的时候先把数据保存到数据库中,然后再跳转到预览页面,等用户返回的时候,你就再把数据从数据库中拉出来,填充,然后再让用户编辑。
[/Quote]

我最经也做过类似的功能,就是用的这种方法,你可以在存入数据库的时候返回这条纪录的ID号,然后根据这个ID去修改纪录,如果有问题家我QQ:249468903,也许能帮到你
chessman_mak 2009-04-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yangniao 的回复:]
哥,当你修改了值之后,你是不是要把值放到session里边啊,但是现在你的session里边换是有值的,我看了你的代码好像没有清空,感觉应该是先把session请空之后在放进去新的值,而且你这个代码换有个问题,你的session是放在页面加载的那个内容里边的,感觉应该是在第一次加载之后就不在加载,放在 if (!Page.IsPostBack)
{
放这里
}
这个是我自己的感觉,我也很菜,不知道对不对,看你的了
[/Quote]


我把加载的那一堆东东放在页面处理就解决问题了.. 不过我觉得这样做..有点不好..不过为什么. 我又说不出来?
chessman_mak 2009-04-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 walkghost 的回复:]
最简单的办法。点预览的时候,弹出一个仿模式窗口层,这样不必考虑页面见传值或者其他问题。
如果你不想那么做,那你可以在用户点预览的时候先把数据保存到数据库中,然后再跳转到预览页面,等用户返回的时候,你就再把数据从数据库中拉出来,填充,然后再让用户编辑。
[/Quote]
哈哈.. 你说中了我想做的那个样子.. 不过重点是..我不会做阿..我想应该是用javascript吧? 能教教我吗??
chessman_mak 2009-04-13
  • 打赏
  • 举报
回复
关于session清空的问题.. 我试过清空之后再放新的值..不过我在Debug下发现.. 在feedback.aspx里,就算的在页面上修改了.但是description.text的值还是没变.. 我不懂为什么..

er... 那个加载的问题..你觉得如果我把那段东西放在页面来做..会不会出现问题呢??
walkghost 2009-04-13
  • 打赏
  • 举报
回复
最简单的办法。点预览的时候,弹出一个仿模式窗口层,这样不必考虑页面见传值或者其他问题。
如果你不想那么做,那你可以在用户点预览的时候先把数据保存到数据库中,然后再跳转到预览页面,等用户返回的时候,你就再把数据从数据库中拉出来,填充,然后再让用户编辑。
yangniao 2009-04-13
  • 打赏
  • 举报
回复
哥,当你修改了值之后,你是不是要把值放到session里边啊,但是现在你的session里边换是有值的,我看了你的代码好像没有清空,感觉应该是先把session请空之后在放进去新的值,而且你这个代码换有个问题,你的session是放在页面加载的那个内容里边的,感觉应该是在第一次加载之后就不在加载,放在 if (!Page.IsPostBack)
{
放这里
}
这个是我自己的感觉,我也很菜,不知道对不对,看你的了

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧