CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

listbox 提交保存数据问题??

楼主cyzzal(cyzzal)2005-05-18 12:28:09 在 .NET技术 / ASP.NET 提问

一个数据双向选择器  
   
  从左边listbox选择数据,移动到右边listbox.  
   
  点保存按钮时,右边listbox中的项就全部清空了,主要是页面重新load了。  
   
   
  请问该怎样保存右边listbox中的项???  
   
  先谢了 问题点数:100、回复次数:20Top

1 楼zhangqiushui(水)回复于 2005-05-18 12:30:34 得分 0

把操作放到if   (!IsPostBack())中Top

2 楼singlepine(小山)回复于 2005-05-18 12:37:12 得分 0

if(!Page.IsPostBack)  
  {  
          //code  
  }Top

3 楼shan1119(大天使,卐~解!)回复于 2005-05-18 12:37:36 得分 0

放到if   (!IsPostBack())中Top

4 楼cyzzal(cyzzal)回复于 2005-05-18 12:47:41 得分 0

把什么操作放到if   (!IsPostBack())中???Top

5 楼cyzzal(cyzzal)回复于 2005-05-18 12:51:17 得分 0

请详细一点  
   
  Top

6 楼flyye_cs(一叶孤舟)回复于 2005-05-18 12:52:17 得分 0

每当点击Web网页上的Button、LinkButton或ImageButton控件时,表单就会被发送到服务器上。如果控件的AutoPostBack属性被设置为true,如果CheckBox、CheckBoxList等控件的状态被改变后,也会使表单会发送回服务器。    
  每次当表单被发送回服务器,就会被重新加载,启动Page_Load事件,执行Page_Load事件处理程序中的所有代码。把网页的初始化代码放在这里是最合适不过的了。我们经常会希望在每次加载网页时执行一些代码,而希望只有在网页第一次加载时执行另一些代码,甚至希望一些代码在除首次加载外的每次加载时执行。    
  可以利用IsPostBack特性来完成这一功能。在网页第一次加载时,该属性的值是false。如果网页因回送而被重新加载,IsPostBack属性的值就会被设置为true。通过测试,可以在任意时候执行指定的代码。下面是相关的C#代码:    
  protected   void   Page_Load(Object   sender,   EventArgs   e)    
  {    
  //   网页每次加载时,执行的一些操作    
  if   (!IsPostBack)    
  {    
  //   网页第一次加载时执行的操作    
  }    
  else    
  {    
  //   回送时执行的操作    
  }    
   
  //   网页每次加载时执行的操作    
  }    
  我们希望尽量不引起回送(每次回送都会要求服务器进行一系列的操作),即使引起回送后。也希望能够执行尽量少的操作。大规模、浪费时间的操作(例如数据库查找)尤其应当避免,因为它们能够延长应用程序的响应时间。    
  Top

7 楼shiningpolarstar(闪亮的北极星)回复于 2005-05-18 13:01:07 得分 10

我觉的你的pageload里肯定重新绑定了列表控件,不然的话,是不会出现你这样的问题的,.net会自已缓存各个控件的状态,不会丢失的Top

8 楼cliff1002(挑战,并快乐着! )回复于 2005-05-18 13:13:33 得分 0

page_load里使用      
  if   not   ispostback   then  
   
  end   if  
  Top

9 楼cyzzal(cyzzal)回复于 2005-05-18 13:19:31 得分 0

我的代码是这样的:  
   
  左边listbox项是从数据表中查出来的。绑定过程我放在if   (!IsPostBack)中。  
   
  右边listbox默认是空的。  
   
  从左边listbox往右边listbox移动数据项.(是javascript实现的)  
   
  在页面下方有一个保存按钮,我现在保存时,右边listbox的项就清空了。  
   
   
   
  请问:我还需要把什么操作放到if   (!IsPostBack)里??  
  Top

10 楼njuzgj(罐子)回复于 2005-05-18 13:28:42 得分 0

MARKTop

11 楼cyzzal(cyzzal)回复于 2005-05-18 13:36:38 得分 0

 
   
  这个问题这几天我一直在搜索,可以说困扰着很多人。  
   
  各位高人难道就不能给一个明确的解决方法吗?  
   
  帮一下像我这样的新手Top

12 楼cyzzal(cyzzal)回复于 2005-05-18 13:56:21 得分 0

难道没人知道吗?????????  
   
  回复的朋友好像并没有理解我的意思Top

13 楼cyzzal(cyzzal)回复于 2005-05-18 14:46:25 得分 0

怎么会没人理我  
   
  斑竹你怎么高高在上,不说话呢?   帮忙看看Top

14 楼flyye_cs(一叶孤舟)回复于 2005-05-18 14:54:42 得分 0

代码贴出来看看~~Top

15 楼lingwu05()回复于 2005-05-18 14:55:42 得分 20

我喜欢用数据库先到一个ArrayList内,再绑定就行了。Top

16 楼cyzzal(cyzzal)回复于 2005-05-18 15:12:44 得分 0

左边listbox绑定代码:  
   
  private   void   Page_Load(object   sender,   System.EventArgs   e)  
  {  
  //   在此处放置用户代码以初始化页面  
  if(!Page.IsPostBack)  
  {  
  Init_Prop();   //   初始化属性  
  Init_Date();   //   初始化数据  
  }  
  }  
  private   void   Init_Prop()  
  {  
  //   按钮效果  
  BtnYes.Attributes.Add("onmouseover","this.className=\"btn_Xp_Bg2_Over\";");  
  BtnYes.Attributes.Add("onmouseout","this.className=\"btn_Xp_Bg2\";");  
  BtnNo.Attributes.Add("onmouseover","this.className=\"btn_Xp_Bg2_Over\";");  
  BtnNo.Attributes.Add("onmouseout","this.className=\"btn_Xp_Bg2\";");  
  }  
  private   void   Init_Date()  
  {  
  string   str_Sql;  
  if(Request["menu_no"]==null)  
  {  
  BtnYes.Enabled=false;  
  BtnNo.Enabled=false;  
  }  
  else  
  {  
  str_Sql="select   *   from   kjxx_module_info   where   xuhao<>1   order   by   xuhao   asc";  
  tobeadd2.DataSource=conn.GetDs(str_Sql);  
  tobeadd2.DataBind();  
  conn.close();  
  }  
  }  
   
   
  右边listbox默认是空的.  
   
  从左边移动数据到右边listbox,这样右边listbox里就有数据项了。  
   
  我现在想保存右边listbox中的数据项。可是一点保存按钮,右边listbox中的数据项就不见了。  
   
  该怎样保存?Top

17 楼cyzzal(cyzzal)回复于 2005-05-18 15:26:48 得分 0

继续顶Top

18 楼cyzzal(cyzzal)回复于 2005-05-18 15:49:17 得分 0

高手   我望眼欲穿Top

19 楼hchxxzx(NET?摸到一点门槛)回复于 2005-05-18 15:51:51 得分 30

列表框/下拉框中,用脚本写入的值,在页面提交之后,你无法保持脚本写入的值,也无法以服务端取值的方式获取选中的脚本写入的值,这也可以说是一个BUG.  
  要实现保持状态,你必须在页面中放一个隐藏控件如HIDDEN,在页面提交时,把用脚本写入的值,读取出来,以某种格式写到此HIDDEN里面,然后,在提交之后,根据HIDDEN里面的值,手工恢复列表框/下拉框的值,这样才能保持.  
  至于取值,你必须用this.Request.Form["下拉框ID"]的方式获取.Top

20 楼alien54155415()回复于 2005-05-18 16:14:00 得分 40

listbox待頁面刷新後,在client端的設定是無法保持的,除非象textbox這種可以輸入的control.  
  所以,你要麼隱藏一個textbox甚麼的來紀錄操作的內容;要麼就寫到server端去,把listbox的AutoPostBack="True"Top

相关问题

  • 不提交页面,客户端保存数据的问题!顶者有分!
  • 如何在表单提交,保存数据库后,根据保存结果弹出模态对话框?
  • 在做Jsp提交保存到数据库,在还没有跳转到保存页面时按了多次保存,保存了多条记录.为什么?
  • 数据保存
  • getParameter是不是将页面提交的数据保存到数据库的唯一方法?谢谢
  • 谁能给个在页面提交数据并保存到数据库表(拥JAVABEAN)的简单例子,谢谢!
  • 怎样利用JAVABEAN将JSP页面提交的数据保存到数据库,请给代码好吗?谢谢!
  • 提交一副图片,不保存不放入数据库,怎么在另外一个页面显示出来
  • ado.net中的事务须提交后才能保存到数据库,如果这样还要回滚干什么?
  • 非跨页面的数据,提交前临时保存在Cookie、Session还是在ViewState里更合适呢?

关键词

  • 代码
  • 网页
  • 执行
  • 控件
  • 页面
  • 脚本
  • 数据
  • 属性
  • 服务器
  • 加载

得分解答快速导航

  • 帖主:cyzzal
  • shiningpolarstar
  • lingwu05
  • hchxxzx
  • alien54155415

相关链接

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

广告也精彩

反馈

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