CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

〓〓〓一个两个控件相互传值的问题,恳请大家帮忙!!!〓〓〓

楼主xx123731(木头人)2006-06-02 15:42:41 在 .NET技术 / ASP.NET 提问

问题是这样的:  
   
  我有一个ListBox    
   
  还有一个CheckBoxList  
   
  在CheckBoxList中选中一个CheckBox的时候ListBox中加上这项,如果CheckBoxList中取消勾选,那么ListBox中去掉这项,怎么做?    
   
  以前做ASP的时候,用JavaScript代码做的,是客户端对一个CheckBox直接勾选或是取消勾选时加个OnClick事件进行处理的.  
   
  现在用asp.net做开发了,用了CheckBoxList这个控件,对数据库操作真的很好用...但是,每次选都要进行AutoPostBack...这对服务器的影响...哎...  
   
  现在还出现这样的问题,不知道客户端勾选的是CheckBoxList中的哪个CheckBox,也没法对客户正在操作的CheckBox在状态改变时进行处理...我郁闷...难道.net没法解决?   还是有好的方法,请大家不吝赐教,谢谢!!!谢谢!!! 问题点数:50、回复次数:14Top

1 楼sbsrg3000(⊙⌒⊙怪事,这几天可用分又没增加....)回复于 2006-06-02 15:46:24 得分 2

up---markTop

2 楼aassdd(梦幻生)回复于 2006-06-02 16:00:26 得分 5

AutoPostBack   ="False"就不自动返回服务器了。  
  CheckBoxList有SelectedIndexChanged方法  
  有以下属性,应该够解决问题了。  
  CheckBoxList1.SelectedIndex;  
  CheckBoxList1.SelectedIndexChanged;  
  CheckBoxList1.SelectedItem;  
  CheckBoxList1.SelectedValue;Top

3 楼xx123731(木头人)回复于 2006-06-02 16:02:17 得分 0

这些我都试过了,就是搞不定啊.0能不能详细一些,麻烦给个例子也行...Top

4 楼oop80(RedSky)回复于 2006-06-02 16:02:43 得分 5

@aassdd(梦幻生)    
  这样解决不了问题,checkboxlist.selectedindex等属性是需要postback的。Top

5 楼oop80(RedSky)回复于 2006-06-02 16:04:01 得分 5

如果你不要整个页面postback,可以学习一下ajaxTop

6 楼aassdd(梦幻生)回复于 2006-06-02 16:07:38 得分 5

晕~~  
  那在客户端只能用   JS   了。  
  写个JS函数。  
  在FORMLOAD给DOTNET控件加个JS属性。  
  具体在坛子里搜一下。  
  如:  
  tb.Attributes.Add("ondblclick",   "var   value=window.showModalDialog('webform3.aspx')Top

7 楼evlon(阿牛)回复于 2006-06-02 16:08:27 得分 5

一般来说,ASP实现的,ASP.net差不多也可心。方式可能不尽相同。Top

8 楼runstone(石头脑瓜)回复于 2006-06-02 17:04:45 得分 5

private   void   CheckBoxList1_SelectedIndexChanged(object   sender,   System.EventArgs   e)  
  {  
  ListBox1.Items.Clear();  
  for(int   i=0;i<CheckBoxList1.Items.Count;i++)  
  {  
  if(CheckBoxList1.Items[i].Selected==true)  
  {  
  ListBox1.Items.Add(CheckBoxList1.Items[i].ToString());  
  }  
  }  
  }  
  你看这样行不行Top

9 楼lzg132()回复于 2006-06-02 17:26:00 得分 5

楼上正解,但是要把CheckBoxlist的AutoPostback=true  
  Top

10 楼int64(@163.com:所有的程序员都应该团结起来!)回复于 2006-06-02 17:39:30 得分 5

当然是把CheckBoxlist的AutoPostback设置为false  
  然后用js来实现Top

11 楼xx123731(木头人)回复于 2006-06-02 17:48:41 得分 0

这样每次都要清空一次ListBox...  
   
  而且每次选中都要AutoPostBack...  
   
  这样对数据库影响是不是太大了...  
   
  而且如果   CheckBoxList   中的数据重新绑定的话...以前选的数据在   ListBox   中就不保留了...Top

12 楼ingodview(上帝眼里的小丑)回复于 2006-06-03 00:15:45 得分 0

xx123731(木头人)   (   )   信誉:100     2006-06-02   17:48:00     得分:   0      
     
     
        这样每次都要清空一次ListBox...  
   
  而且每次选中都要AutoPostBack...  
   
  这样对数据库影响是不是太大了...  
   
  而且如果   CheckBoxList   中的数据重新绑定的话...以前选的数据在   ListBox   中就不保留了...  
       
     
  ******************************************************************************************  
  每次autopostback时并没有对数据库操作,而是保存在状态里,就是说只是赋值给了控件而已  
   
  所以跟数据库没有关系,但是每次都会回发到服务器端,是会影响效率,但不关数据库的事情  
  Top

13 楼ingodview(上帝眼里的小丑)回复于 2006-06-03 00:17:30 得分 3

当然估计仅仅通过控件autopostback的过程来处理还不行,因为保存在状态中的值可能在代码页.net读不到,但是用户端的js可以读取到。  
   
  请参考联动菜单的解决办法Top

14 楼jittyhoum(名叫哈哈)回复于 2006-06-03 00:39:03 得分 5

asp.net页面的实现机制就是每次触发任何服务器端事件都会触发一次IsPostBack,由于会触发IsPostBack所以会重新刷新页面,当楼住要实现你所说的内容,用JS固然是行不同的,因为当你在客户端把checkbox选中或不选中,对服务器端而言是不知道的.  
  也就说checkbox选没选中只是显示给用户看的,这些信息并不会被带回服务器端  
  如果服务器端一定要知道选没选中的话,就只能用Ajax实现了  
  微软提供了一套很方便的一套东西   atlas  
  搂住可以去下载,用起来很方便Top

相关问题

关键词

得分解答快速导航

  • 帖主:xx123731
  • sbsrg3000
  • aassdd
  • oop80
  • oop80
  • aassdd
  • evlon
  • runstone
  • lzg132
  • int64
  • ingodview
  • jittyhoum

相关链接

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

广告也精彩

反馈

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