〓〓〓一个两个控件相互传值的问题,恳请大家帮忙!!!〓〓〓
问题是这样的:
我有一个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




