js脚本代码(实现全选):
function SelectAll() {
//获取GridView中全部input对象集合,“GridView.ClientID”是获得经服务器处理后经过更改的id
var obj = document.getElementByIdx_xx_x_x_x("<%=GridView.ClientID%>").getElementsByTagName_r("input"); //注意此处代码在本博文发布时,新浪博客会自动更改,请自行更改
//遍历input对象,因为input对象类型type只有checkbox所以不用判断。i=1是要去掉表头的input对象
for (var i = 1; i < obj.length; i++) {
if (obj[i].checked == false) {
obj[i].checked = true;
}
else {
obj[i].checked = false;
}
}
//如果input对象类型type还有其他类型(如text、button等),则再增加个判断即可
//for (var i = 1; i < obj.length; i++) {
// if (obj[i].type == "checkbox"){
// if (obj[i].checked == false) {
// obj[i].checked = true;
// }
// else {
// obj[i].checked = false;
// }
// }
//}
}
aspx页面代码:
<asp:Button ID="btnDelete" runat="server" Text="删除" OnClick="btnDelete_Click" />
<asp:GridView ID="GridView1" runat="server" DataKeyNames="id">
<Columns>
<asp:TemplateField ItemStyle-Width="60" ItemStyle-HorizontalAlign="Center">
<HeaderTemplate>
<input id="chkHeader" type="checkbox" οnclick="SelectAll();" />选择
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="chkItem" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<-- 其他列略,CheckBox控件我放在了首列,也建议大家这么做,如果没在首列,要更改后台cs文件代码 -->
</Columns>
</asp:GridView>
后台cs代码:
protected void btnDelete_Click(object sender, EventArgs e)
{
bool Choose = false; //用于标记GridView中任意CheckBox控件是否被选中
bool Wrong = false; //用于标记删除GridView中某一行的数据时是否失败
string msg = ""; //用于记录当删除失败时存储的错误信息
//遍历GridView所有行
CourseManage m_CourseManage = new CourseManage(); //此为Bll层类,根据你的需要自行更改
for (int i = 0; i < GridView1.Rows.Count; i++)
{
//如果某一行的CheckBox被选中,则执行删除操作
CheckBox chk = (CheckBox)(GridView1.Rows[i].Cells[0].FindControl("chkItem"));
if (chk.Checked == true)
{
Choose = true;
//获取要被删除的记录id
int id = Convert.ToInt32(GridView1.DataKeys[i].Value);
if (m_CourseManage.Delete(id) == false) //请自行更改
{
Wrong = true;
msg = msg + "第" + (i + 1) + "行删除失败!";
continue;
}
}
}
//校验
if (Choose == false)
{
Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('没有任何选项被选中,无法删除!');</script>");
return;
}
if (Wrong == true)
{
Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('" + msg + "请联系管理员');</script>");
return;
}
GridView1.DataSource = m_CourseManage.SelectAll(); // 自行更改
GridView1.DataBind();
function SelectAll() {
//获取GridView中全部input对象集合,“GridView.ClientID”是获得经服务器处理后经过更改的id
var obj = document.getElementByIdx_xx_x_x_x("<%=GridView.ClientID%>").getElementsByTagName_r("input"); //注意此处代码在本博文发布时,新浪博客会自动更改,请自行更改
//遍历input对象,因为input对象类型type只有checkbox所以不用判断。i=1是要去掉表头的input对象
for (var i = 1; i < obj.length; i++) {
if (obj[i].checked == false) {
obj[i].checked = true;
}
else {
obj[i].checked = false;
}
}
//如果input对象类型type还有其他类型(如text、button等),则再增加个判断即可
//for (var i = 1; i < obj.length; i++) {
// if (obj[i].type == "checkbox"){
// if (obj[i].checked == false) {
// obj[i].checked = true;
// }
// else {
// obj[i].checked = false;
// }
// }
//}
}
aspx页面代码:
<asp:Button ID="btnDelete" runat="server" Text="删除" OnClick="btnDelete_Click" />
<asp:GridView ID="GridView1" runat="server" DataKeyNames="id">
<Columns>
<asp:TemplateField ItemStyle-Width="60" ItemStyle-HorizontalAlign="Center">
<HeaderTemplate>
<input id="chkHeader" type="checkbox" οnclick="SelectAll();" />选择
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="chkItem" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<-- 其他列略,CheckBox控件我放在了首列,也建议大家这么做,如果没在首列,要更改后台cs文件代码 -->
</Columns>
</asp:GridView>
后台cs代码:
protected void btnDelete_Click(object sender, EventArgs e)
{
bool Choose = false; //用于标记GridView中任意CheckBox控件是否被选中
bool Wrong = false; //用于标记删除GridView中某一行的数据时是否失败
string msg = ""; //用于记录当删除失败时存储的错误信息
//遍历GridView所有行
CourseManage m_CourseManage = new CourseManage(); //此为Bll层类,根据你的需要自行更改
for (int i = 0; i < GridView1.Rows.Count; i++)
{
//如果某一行的CheckBox被选中,则执行删除操作
CheckBox chk = (CheckBox)(GridView1.Rows[i].Cells[0].FindControl("chkItem"));
if (chk.Checked == true)
{
Choose = true;
//获取要被删除的记录id
int id = Convert.ToInt32(GridView1.DataKeys[i].Value);
if (m_CourseManage.Delete(id) == false) //请自行更改
{
Wrong = true;
msg = msg + "第" + (i + 1) + "行删除失败!";
continue;
}
}
}
//校验
if (Choose == false)
{
Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('没有任何选项被选中,无法删除!');</script>");
return;
}
if (Wrong == true)
{
Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('" + msg + "请联系管理员');</script>");
return;
}
GridView1.DataSource = m_CourseManage.SelectAll(); // 自行更改
GridView1.DataBind();
}