CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

可能很少人注意到的问题 @_@ 救命~~~~

楼主jxhwei(工羊大盗)2005-06-03 16:47:44 在 .NET技术 / ASP.NET 提问

用asp.net做的页面,如果上面有服务器控件(例如buttotn),一旦执行了一次之后,如果按刷新按钮,刚才的操作会在执行一次!!!(例如,第一次删除id为10的纪录,按刷新按钮后,就会抱错,错误的大意就是说id为10的纪录不存在)  
   
  这还是好办的,无非是try了之后不管,增加纪录可怎么办啊?刷新一次插一条……  
   
  我已经快被这问题折磨疯了,大大们救救我吧! 问题点数:0、回复次数:26Top

1 楼cdjjh(Jerry)回复于 2005-06-03 16:54:35 得分 0

说得太模糊了吧,举个例子吧Top

2 楼ahchiee(脚印满天)回复于 2005-06-03 16:55:34 得分 0

数据库操作完成之后,重新加载页面,就不会刷新就操作了。Top

3 楼LaoDai_Net(『老代』)回复于 2005-06-03 17:00:50 得分 0

加上   if(   Page.IsPostBack)   试一下Top

4 楼laihua(背着石头过河)回复于 2005-06-03 17:06:12 得分 0

Response.Redirect(Request.Url.ToString());  
  这样就可以了,重定向一下Top

5 楼fxfeixue(小虾米)回复于 2005-06-03 17:07:32 得分 0

在   page_load   中把代码加在    
  If   not   ispostback   Then  
  .  
  .  
  .  
  End   If  
  之间试试Top

6 楼bouyuki(bouyuki)回复于 2005-06-03 17:08:04 得分 0

if(   !Page.IsPostBack){  
  //第一次进入  
  }else{  
  /第一次/以外  
  }Top

7 楼judy_wane(小依达)回复于 2005-06-03 17:11:08 得分 0

同意   laihua(背着石头过河)的意见,添加完之后重新装载一下页面!!!  
  Response.Redirect(Request.Url.ToString());Top

8 楼meixiaofeng(yesmsn)回复于 2005-06-03 17:12:29 得分 0

accidenceTop

9 楼ocean413(地下党)回复于 2005-06-03 17:14:56 得分 0

这用任何脚本都有的问题,重定位就可以解决了!方法楼上的已说过了Top

10 楼pgy8288(Just Coding)回复于 2005-06-03 17:27:19 得分 0

If   Except=2667     Then  
        Response.Write("记录已存在")  
  End   IfTop

11 楼OSCAR_NJU(死刑犯)回复于 2005-06-03 17:36:06 得分 0

嗯,这个是让很多新手(我也是)忽视或者困惑的问题,其实最好就是记得每次完成一个操作后用Redirect()强制刷新页面。Top

12 楼luck0235(风平浪静时人人都能掌舵)回复于 2005-06-03 17:55:51 得分 0

这个感觉应该是思维上的细节问题,每个细节我们都应该思考的很清晰,然后作相应的处理。Top

13 楼sp1234(asp.net不是一个语言,是一个操作系统)回复于 2005-06-03 18:59:10 得分 0

Redirect是使用一个大大的问题掩盖一个小问题,拣了芝麻丢了西瓜,自己不知。Redirect造成丢失了页面状态,那么“以后”你想真正深入学习asp.net的编程技巧就很难了。Top

14 楼OSCAR_NJU(死刑犯)回复于 2005-06-03 19:40:19 得分 0

to:sp1234()    
  我一直是用Redirect解决问题的,而且可以说我就是刻意去掉页面的视图状态,因为我的服务器控件基本上都是EnableViewState=false,因此看到你的回复我很想请教。  
  就我知道页面的viewstate在整个页面的大小中占很大的比例,特别是datagrid的使用,这很影响页面的运行速度。Top

15 楼judy_wane(小依达)回复于 2005-06-03 19:51:27 得分 0

to:sp1234()    
   
  同意OSCAR_NJU(死刑犯)   的说法,既然我只是添加或者删除一些东西的话,还要viewstate里面的东东做什么用呢??也没有多大的意义   呀~!!!!!Top

16 楼ksn520(泡菜.Net)回复于 2005-06-03 20:05:20 得分 0

学习ing...Top

17 楼sp1234(asp.net不是一个语言,是一个操作系统)回复于 2005-06-03 20:20:41 得分 0

最简单的,例如点击DataGridf中的一行,编辑这一行。至少,这一行被选中之后会显示一个选中的模样,当页面上有另外一个按钮提交并显示与它相关的内容的时候,DataGrid的选中行的模样不应该消失吧?!否则就对用户过分的地“不友好”了。  
   
  如果你不能想象不出我说的是什么样子,那么你肯定没有做过只需要局部改变页面模样,而其它部分必须要保持原来用户操作状态的应用。  
   
  以当前这个csdn页面来说,其实非常简单,所以你看到xml。但是,假设需要编辑回帖的人动态加入表情符、在编辑自己的回帖的同时可以(右边)同时搜索相关文章并插入插入链接,等等这些稍微复杂的界面,你是否做过呢?如果做过,很容易了解为什么需要页面状态。我还没有见过一个“深入学习”asp.net   的人禁用状态。如果纯粹为了效率,这样的页面就不应该使用asp.net,应该用比asp还要简单的工具去输出html流。因为asp.net非常慢,非常复杂。只不过,没有能够达到真正的用户友好界面的开发方法的工具代替asp.net而已。Top

18 楼noyester()回复于 2005-06-03 20:38:10 得分 0

Response.Redirect(Request.RwUrl.ToString())  
  Top

19 楼sp1234(asp.net不是一个语言,是一个操作系统)回复于 2005-06-03 20:42:42 得分 0

本来不想做广告,但是此时不得不如此。我访问了这个页面:  
        http://cosoft.org.cn/forum/forum.php?forum_id=8122  
  进去看了他们的演示。除了美工图片以外,交互性简直可以说是“惨不忍睹”。哪有什么真正的“交互”界面呢?没有交互界面,怎么可能成为商品化的应用软件呢?像这类软件的开发者只会做简单的网页,需要学习的东西太多了。Top

20 楼sp1234(asp.net不是一个语言,是一个操作系统)回复于 2005-06-03 20:46:00 得分 0

学习asp.net,就是页面不要再“丑陋”,就是作为一个合格的工程师能够超越技术问题而去用心关心需求问题、表现问题。只能做出非交互界面(提交之后立刻初始化),怎么往下混呀!Top

21 楼yuyijw(恋之心)回复于 2005-06-03 21:10:01 得分 0

ViewState   =   falseTop

22 楼ccwq(Wind Love Rove Forever)回复于 2005-06-04 07:42:39 得分 0

public   bool   IsRefurbish  
  {  
  get  
  {  
  return   HttpContext.Current.Request.Headers["Accept"]=="*/*";  
  }  
  }  
   
  然后在你按钮处理程序中加上  
  if(!IsRefurbish)  
  {  
  //正常操作;  
  }  
  else  
  {  
  //刷新操作  
  }Top

23 楼minghui000(沉迷网络游戏)回复于 2005-06-05 01:34:38 得分 0

up  
  Top

24 楼jxhwei(工羊大盗)回复于 2005-06-06 08:41:55 得分 0

两天没上网,今天一早看到这么多回复感到非常高兴。(^-^)  
   
  首先,if(   Page.IsPostBack)   是没用的,因为按刷新按钮,实际上会原样重复上个页面,Page.IsPostBack的值根本就没有被改变。  
   
  laihua(背着石头过河)、OSCAR_NJU(死刑犯)   等几位大大的意见感觉还是很实际的,但还是想请教下sp1234()   大大,如果不使用Redirect,那应该怎么解决这个问题呢?我曾经想过解开viewstate集合,只把我需要清空的状态清空,其他保留,但根本找不到系统的viewstate的任何一个值……Top

25 楼jxhwei(工羊大盗)回复于 2005-06-06 13:10:19 得分 0

call   sp1234()Top

26 楼jinwishing(醒醒吧Child)回复于 2005-06-06 13:35:58 得分 0

学习Top

相关问题

  • 比较基本的程序结构问题。不过好象很少有人注意这个问题
  • 很少有人注意的一个问题:怎么显示输出一个64位的大整数? 不要告诉我用%d格式符。
  • jxzqsun(少年时代)你注意点!
  • 看《C++ Primer》的人请注意
  • 女人使用注意事项(转)!!!!!!!!!
  • 现在在这里的同志们注意了,进来up一下,我好统计现在有多少人,要给多少分!
  • 现在在这里的同志们注意了,进来登记一下,我好统计现在有多少人,要给多少分!
  • 【注意啦】D版有多少【北京】的程序员挖,进来露个面挖!【注意啦】
  • JAVA高手注意了,你看了多少本书???
  • 第二次放分,注意只給前3個人,星最少的40分,呵呵,我連放5次,看誰快阿

关键词

  • asp.net
  • sp1
  • 页面
  • 界面
  • 交互
  • 学习
  • 解决
  • 用户
  • 刷新
  • 操作

得分解答快速导航

  • 帖主:jxhwei

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo