两个CheckBox互动

来源:互联网 发布:数据库理论试题及答案 编辑:程序博客网 时间:2024/04/24 01:13
1.服务端
在asp.net上具有服务端的CheckBox控件,
如果使多个CheckBox产生互动效果,并不困难只需要设置它的AutoPostBack属性为true,之后在CheckedChange事件内书写代码即可.假设页面上具有两个CheckBox控件,ID分别为checkbox1,checkbox2.
首先设置他们的AutoPostPack为true.再写事件代码:
//checkbox1的CheckedChanged事件
private void checkbox1_CheckedChanged(object sender, System.EventArgs e)
  
{
     checkbox2.Checked
=!checkbox1.Checked;
  }

//checkbox2的CheckedChanged事件
private void checkbox2_CheckedChanged(object sender, System.EventArgs e)
  
{
     checkbox1.Checked
=!checkbox2.Checked;
  }
这样,我们就可以实现页面上只有一个CheckBox被选中. 也可以再进行后台的其他处理了.
但是有一点不足,因为设置了AutoPostPack为true.则页面具有刷新现象,叫人不爽!

2.客户端
如果使用客户端的checkbox控件,可以避免页面刷新问题.
客户端函数:
<script language="JavaScript">
function Check(obj) {    
    
var blnCurrent;
    blnCurrent 
= obj.checked;
    
if(obj.name == "checkbox1"){
        Form1.checkbox1.checked 
= blnCurrent;
        Form1.checkbox2.checked
= !blnCurrent;
    }

    
else{
        Form1.checkbox1checked 
= !blnCurrent;
        Form1.checkbox2.checked
= blnCurrent;
    }

}
        

        
</script>

之后为每一个checkbox指定onclick="Check(this)"即可.
如果需要后台代码中使用checkbox,则转变checkbox为服务端(双击即可),如下: 
 
<INPUT runat="server" onclick="Check(this)" type="checkbox" name="checkbox1"
id
="checkbox1" >
<INPUT runat="server" onclick="Check(this)" type="checkbox" name="checkbox2"
id
="checkbox2" >

后台可以根据它可以进行不同的操作:
if(checkbox1.Checked)
{.....}
else
{....}

文章来源于 http://www.cnblogs.com/zhangzs8896 版权归原作者所有
原创粉丝点击