JS实现DataGrid模板列和DetailsView中有多个Checkbox时只许选中一个

 问题的提出:必须保证多个CheckBox只能选中一个,使用Radio有点不合适,因为必须保证选择项可以全部不被选中
解决方法来源: http://gwazy.cnblogs.com/archive/2005/07/25/199765.html
谢谢boytomato分享经验 :)

今天在此基础上添加了解决在DetailsView控件下的方法,只是只是一点点改动,记录下来,以备下次使用

1、实现 DataGrid 模板列中有多个checkbox 时只许选中一个

None.gif// 实现 DataGrid 模板列中有多个checkbox 时只许选中一个
None.gif
function change_check(temp)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif    
var checks= temp.parentElement.parentElement.getElementsByTagName("input");
InBlock.gif    
for (i=0;i<checks.length-1;i++)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        
if (checks[i]!=temp &&checks[i].checked)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            checks[i].checked
=!temp.checked ;
ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif    }

ExpandedBlockEnd.gif}

2、实现 DetailsView 模板列中有多个checkbox 时只许选中一个
ContractedBlock.gifExpandedBlockStart.gif实现 DetailsView 模板列中有多个checkbox 时只许选中一个
None.gif// 实现 DetailsView 模板列中有多个checkbox 时只许选中一个
None.gif
function change_check1(temp)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif    
var checks= temp.parentElement.parentElement.parentElement.getElementsByTagName("input");
InBlock.gif
InBlock.gif    
for (i=0;i<checks.length-1;i++)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        
if (checks[i]!=temp &&checks[i].checked)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            checks[i].checked
=!temp.checked ;
ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif    }

ExpandedBlockEnd.gif}


3、使用方法:
None.gif<ItemTemplate>
None.gif                            
<asp:CheckBox id="User" Runat="server" onclick="change_check(this)"></asp:CheckBox>
None.gif                        
</ItemTemplate>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章