为什么提交数据之后,显示页不刷新数据咧?急,急,在线等待!

wdfboy1978 2003-09-13 12:19:10
为什么我点击“提交”,数据提交到数据库后,我使用response.redirect "xxx.aspx"到显示页,但是显示页还是原先的数据,只有刷新一次后才会出现之前提交的数据,有没有什么方法使用它直接更新数据的?急急!!!
以下是我的page_Load、BindData

void Page_Load(object sender, System.EventArgs e)
{

if(Session["UserName"]==null)
{
Response.Write("<script language='javascript' runat=server>");
Response.Write("alert('对不起,请先登录!');");
Response.Write("window.location.href='index.aspx';");
Response.Write("</script>");
Response.End();
}
else
{
pagesize=5; //每页5条记录
string StrConn="Provider=Microsoft.Jet.Oledb.4.0;Data Source="+Server.MapPath("guestbook.mdb");
myConn=new OleDbConnection(StrConn);
myConn.Open();
if(!Page.IsPostBack)
{
currentpage=0; //初始页为0
ViewState["CurrentPage"]=0;

recordcount=CalcuateRecord(); //计算记录总数
ViewState["RecordCount"]=recordcount;

pagecount=recordcount/pagesize; //计算页数
ViewState["PageCount"]=pagecount;
BindData();
}
}
}


public void BindData()
{
int startPage;
startPage=(currentpage * pagesize);
string SeleStr="Select message.id,message.content,message.addtime,message.img,message.username,reg.qq,reg.email,reg.homepage,reg.intro from message inner join reg on message.username=reg.username order by message.addtime desc";
OleDbDataAdapter Cmd=new OleDbDataAdapter(SeleStr,myConn);
DataSet ds=new DataSet();
Cmd.Fill(ds,startPage,pagesize,"message");
message.DataSource=ds;
message.DataBind();
L_Cuttent.Text=(currentpage+1).ToString();
L_PageCount.Text=(pagecount+1).ToString();
L_Count.Text=recordcount.ToString();
}


以下是提交数据的按钮!

private void add_Click(object sender, System.EventArgs e)
{
if(Page.IsValid)
{
string strConn="Provider=Microsoft.Jet.Oledb.4.0;Data Source="+Server.MapPath("guestbook.mdb");
OleDbConnection myConn=new OleDbConnection(strConn);
myConn.Open();

string sqlstr="select * from message where username='"+Session["UserName"]+"' and content like '"+content.Text+"'";
OleDbCommand myCommand=new OleDbCommand(sqlstr,myConn);

OleDbDataReader myReader=myCommand.ExecuteReader();
if(myReader.Read())
{
Response.Write("<script language='javascript' runat=server>");
Response.Write("alert('对不起,不能重复发同样的留言')");
Response.Write("</script>");
myReader.Close();
}
else
{
myReader.Close();
string myicon;
myicon="";
int icon_no;
icon_no=RB_List.SelectedIndex;
switch(icon_no)
{
case 0:
myicon="icon1.gif";
break;
case 1:
myicon="icon2.gif";
break;
case 2:
myicon="icon3.gif";
break;
case 3:
myicon="icon4.gif";
break;
case 4:
myicon="icon5.gif";
break;
case 5:
myicon="icon6.gif";
break;
case 6:
myicon="icon7.gif";
break;
case 7:
myicon="icon8.gif";
break;
}

string sql="insert into message(username,img,content,addtime) values ('"+Session["UserName"]+"','"+myicon+"','"+Server.HtmlEncode(content.Text)+"','"+DateTime.Now+"')";
myCommand=new OleDbCommand(sql,myConn);
myCommand.ExecuteNonQuery();
Response.Redirect("showmessage.aspx");
}
}
}
...全文
42 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
ahui_net 2003-09-16
  • 打赏
  • 举报
回复

以下是我的page_Load、BindData

void Page_Load(object sender, System.EventArgs e)
{
下加
ahui_net 2003-09-16
  • 打赏
  • 举报
回复
Response.Expires = 0;
加上这句试试
qiuji 2003-09-16
  • 打赏
  • 举报
回复
你可以不使用response.redirect,
而是改成:
Response.Write("<meta http-equiv='refresh' content='1;url=yourpage.aspx'>");

思路:在当前页面写入HTML内容,使当前页面执行刷新操作,但不是刷新本页面,而是刷新到目标页面。这样执行的效果与使用response.redirect有明显的不同。

这是我个人经常使用的方法,自己使用过多次,效果比较满意,仅供参考!
欢迎大家提出意见!



wdfboy1978 2003-09-16
  • 打赏
  • 举报
回复
再指教指教,在线等待!
wdfboy1978 2003-09-16
  • 打赏
  • 举报
回复
总结:
如果是使用“本页提交,本页显示”的话,使用response.redirect("url")是可以刷新记录的,如果是使用“本页提交,另页显示”的话,使用response.redirect("url")就有可能页面记录不能自动刷新!
wdfboy1978 2003-09-16
  • 打赏
  • 举报
回复
本人研究出一种方法,给大家借鉴!
Response.Write("<script language='javascript' runat=server>");
Response.Write("alert('留言成功!');");
Response.Write("window.location.href='showmessage.aspx';");
Response.Write("</script>");
yaotiebing 2003-09-16
  • 打赏
  • 举报
回复
注意区分大小写
cnhgj 2003-09-16
  • 打赏
  • 举报
回复
<head></head>之间加<META HTTP-EQUIV="pragma" CONTENT="no-cache">试试
wdfboy1978 2003-09-15
  • 打赏
  • 举报
回复
再指教指教,在线等待!
wdfboy1978 2003-09-15
  • 打赏
  • 举报
回复
是啊,我使用的是response.redirect"URL"这个命令返回的,但是却不刷新,高手教教我,你们是怎么做的?!
HenanBoy 2003-09-15
  • 打赏
  • 举报
回复
估计是:你在提交之后在返回的时候没有刷新数据了。
wdfboy1978 2003-09-15
  • 打赏
  • 举报
回复
不可能要求每位浏览的人都去设置IE吧,这个太不可能了!哪位高手遇到过这类问题?如果解决?
qimini 2003-09-13
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2255/2255544.xml?temp=.9423639
qimini 2003-09-13
  • 打赏
  • 举报
回复
ViewState.Clear在显示数据页面
dongjie1928 2003-09-13
  • 打赏
  • 举报
回复
void Page_Load(object sender, System.EventArgs e)
{
if(!Ispostback)
{
public void BindData();
}
}
绑定数据应在Ispostback中提交``````````请查阅msdn的Ispostback
cnhgj 2003-09-13
  • 打赏
  • 举报
回复
Response.Redirect("showmessage.aspx",true);
xz_king 2003-09-13
  • 打赏
  • 举报
回复
检查一下你的IE设置,看看你的设置中检查网页版本的选项是如何设置的。
xu0923 2003-09-13
  • 打赏
  • 举报
回复
数据更新后,再执行一下BindData()方法
wdfboy1978 2003-09-13
  • 打赏
  • 举报
回复
但是在提交留言之后,显示留言的页面还是保留原先的信息,只有通过刷新页面才可以看到新的记录,有什么办法让我提交之后能看到新的记录吗?
ltf1980 2003-09-13
  • 打赏
  • 举报
回复
我觉得 webdiyer(陕北吴旗娃)的方法比较好,这样id就不会显示历史页面了,以后我也这么做。佩服
加载更多回复(5)

62,046

社区成员

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

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

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

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