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

xx123731 2006-06-02 03:42:41
问题是这样的:

我有一个ListBox

还有一个CheckBoxList

在CheckBoxList中选中一个CheckBox的时候ListBox中加上这项,如果CheckBoxList中取消勾选,那么ListBox中去掉这项,怎么做?

以前做ASP的时候,用JavaScript代码做的,是客户端对一个CheckBox直接勾选或是取消勾选时加个OnClick事件进行处理的.

现在用asp.net做开发了,用了CheckBoxList这个控件,对数据库操作真的很好用...但是,每次选都要进行AutoPostBack...这对服务器的影响...哎...

现在还出现这样的问题,不知道客户端勾选的是CheckBoxList中的哪个CheckBox,也没法对客户正在操作的CheckBox在状态改变时进行处理...我郁闷...难道.net没法解决? 还是有好的方法,请大家不吝赐教,谢谢!!!谢谢!!!
...全文
199 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
jittyhoum 2006-06-03
  • 打赏
  • 举报
回复
asp.net页面的实现机制就是每次触发任何服务器端事件都会触发一次IsPostBack,由于会触发IsPostBack所以会重新刷新页面,当楼住要实现你所说的内容,用JS固然是行不同的,因为当你在客户端把checkbox选中或不选中,对服务器端而言是不知道的.
也就说checkbox选没选中只是显示给用户看的,这些信息并不会被带回服务器端
如果服务器端一定要知道选没选中的话,就只能用Ajax实现了
微软提供了一套很方便的一套东西 atlas
搂住可以去下载,用起来很方便
ingodview 2006-06-03
  • 打赏
  • 举报
回复
当然估计仅仅通过控件autopostback的过程来处理还不行,因为保存在状态中的值可能在代码页.net读不到,但是用户端的js可以读取到。

请参考联动菜单的解决办法
ingodview 2006-06-03
  • 打赏
  • 举报
回复
xx123731(木头人) ( ) 信誉:100 2006-06-02 17:48:00 得分: 0


这样每次都要清空一次ListBox...

而且每次选中都要AutoPostBack...

这样对数据库影响是不是太大了...

而且如果 CheckBoxList 中的数据重新绑定的话...以前选的数据在 ListBox 中就不保留了...


******************************************************************************************
每次autopostback时并没有对数据库操作,而是保存在状态里,就是说只是赋值给了控件而已

所以跟数据库没有关系,但是每次都会回发到服务器端,是会影响效率,但不关数据库的事情
xx123731 2006-06-02
  • 打赏
  • 举报
回复
这样每次都要清空一次ListBox...

而且每次选中都要AutoPostBack...

这样对数据库影响是不是太大了...

而且如果 CheckBoxList 中的数据重新绑定的话...以前选的数据在 ListBox 中就不保留了...
int64 2006-06-02
  • 打赏
  • 举报
回复
当然是把CheckBoxlist的AutoPostback设置为false
然后用js来实现
lzg132 2006-06-02
  • 打赏
  • 举报
回复
楼上正解,但是要把CheckBoxlist的AutoPostback=true
runstone 2006-06-02
  • 打赏
  • 举报
回复
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());
}
}
}
你看这样行不行
evlon 2006-06-02
  • 打赏
  • 举报
回复
一般来说,ASP实现的,ASP.net差不多也可心。方式可能不尽相同。
aassdd 2006-06-02
  • 打赏
  • 举报
回复
晕~~
那在客户端只能用 JS 了。
写个JS函数。
在FORMLOAD给DOTNET控件加个JS属性。
具体在坛子里搜一下。
如:
tb.Attributes.Add("ondblclick", "var value=window.showModalDialog('webform3.aspx')
oop80 2006-06-02
  • 打赏
  • 举报
回复
如果你不要整个页面postback,可以学习一下ajax
oop80 2006-06-02
  • 打赏
  • 举报
回复
@aassdd(梦幻生)
这样解决不了问题,checkboxlist.selectedindex等属性是需要postback的。
xx123731 2006-06-02
  • 打赏
  • 举报
回复
这些我都试过了,就是搞不定啊.0能不能详细一些,麻烦给个例子也行...
aassdd 2006-06-02
  • 打赏
  • 举报
回复
AutoPostBack ="False"就不自动返回服务器了。
CheckBoxList有SelectedIndexChanged方法
有以下属性,应该够解决问题了。
CheckBoxList1.SelectedIndex;
CheckBoxList1.SelectedIndexChanged;
CheckBoxList1.SelectedItem;
CheckBoxList1.SelectedValue;
sbsrg3000 2006-06-02
  • 打赏
  • 举报
回复
up---mark

62,072

社区成员

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

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

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

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