ASP.NET的gridview里checkbox实现多行删除,可是gridview里只有一行数据时却删除不了?
//gridview里的checkbox
<asp:TemplateField>
<ItemTemplate>
<input name="CheckboxGroup" type="checkbox" value='<%#Eval("ID") %>'>
</ItemTemplate>
</asp:TemplateField>
//全选,反选,删除按钮
<a href ="#" onclick="SelectAll();">全选</a>
<a href="#" onclick="ReverseSelect();">反选</a>
<asp:LinkButton ID="LinkButtonDelete" runat="server"
onclick="LinkButtonDelete_Click" onclientclick="javascript:return ConfirmDelete();">删除 </asp:LinkButton>
//删除按钮的后台代码
protected void LinkButtonDelete_Click(object sender, EventArgs e)
{
string deleteSQL = "delete from table where ID in (" + Request["CheckboxGroup"] + ")";
Conn.Open();
SqlCommand cmd = new SqlCommand(sql, Conn);
cmd.ExecuteNonQuery();
Conn.Close();
}
应该是下面代码有问题,但不会改,对javascript不是很熟,求教
//javascript全选,反选实现
<script language="javascript" type="text/javascript">
//反选
function ReverseSelect()
{
var checkbox = document.all.CheckboxGroup;
if(checkbox==null)
{
return false; }
if(checkbox.length+""!="undefined") //checkbox.length是什么意思?为什么要 +"" ?
{
for( var i=0;i<checkbox.length;i++ )
{
checkbox[i].checked = !checkbox[i].checked;
}
}
else
{
// 修正当列表长度为1时,不能反选的BUG
checkbox.checked = !checkbox.checked;
}
return false;
}
//全选
function SelectAll()
{
var checkbox = document.all.CheckboxGroup;
if(checkbox==null)
{
return false; }
if( checkbox.length+""!="undefined")
{
for( var i=0;i<checkbox.length;i++ )
{
checkbox[i].checked = true;
}
}
else
{
checkbox.checked = true;
}
return false; }
//检查是否至少选择了一项
function CheckHasSelectedItem()
{
var checkbox = document.all.CheckboxGroup;
if(checkbox==null)
{
return false; }
if( checkbox.length+""!="undefined")
{
for( var i=0;i<checkbox.length;i++ )
{
if(checkbox[i].checked)
{
return true;
}
}
}
else
{
return false;
}
}
//删除用户前的确认
function ConfirmDelete()
{
if(CheckHasSelectedItem())//如果至少选择了一项
{
return confirm("确认删除选中项的项?");
}
else
{
alert("请至少选择一项!");
return false;
}
}
</script>