问题的提出:必须保证多个CheckBox只能选中一个,使用Radio有点不合适,因为必须保证选择项可以全部不被选中
解决方法来源: http://gwazy.cnblogs.com/archive/2005/07/25/199765.html
谢谢boytomato分享经验 :)
今天在此基础上添加了解决在DetailsView控件下的方法,只是只是一点点改动,记录下来,以备下次使用
1、实现 DataGrid 模板列中有多个checkbox 时只许选中一个
//
实现 DataGrid 模板列中有多个checkbox 时只许选中一个
function change_check(temp)
{
var checks= temp.parentElement.parentElement.getElementsByTagName("input");
for (i=0;i<checks.length-1;i++)
{
if (checks[i]!=temp &&checks[i].checked)
{
checks[i].checked=!temp.checked ;
}
}
}
function change_check(temp)
{
var checks= temp.parentElement.parentElement.getElementsByTagName("input");
for (i=0;i<checks.length-1;i++)
{
if (checks[i]!=temp &&checks[i].checked)
{
checks[i].checked=!temp.checked ;
}
}
}
2、实现 DetailsView 模板列中有多个checkbox 时只许选中一个
实现 DetailsView 模板列中有多个checkbox 时只许选中一个
// 实现 DetailsView 模板列中有多个checkbox 时只许选中一个
function change_check1(temp)
{
var checks= temp.parentElement.parentElement.parentElement.getElementsByTagName("input");
for (i=0;i<checks.length-1;i++)
{
if (checks[i]!=temp &&checks[i].checked)
{
checks[i].checked=!temp.checked ;
}
}
}
// 实现 DetailsView 模板列中有多个checkbox 时只许选中一个
function change_check1(temp)
{
var checks= temp.parentElement.parentElement.parentElement.getElementsByTagName("input");
for (i=0;i<checks.length-1;i++)
{
if (checks[i]!=temp &&checks[i].checked)
{
checks[i].checked=!temp.checked ;
}
}
}
3、使用方法:
<
ItemTemplate
>
< asp:CheckBox id ="User" Runat ="server" onclick ="change_check(this)" ></ asp:CheckBox >
</ ItemTemplate >
< asp:CheckBox id ="User" Runat ="server" onclick ="change_check(this)" ></ asp:CheckBox >
</ ItemTemplate >