多选时,只有全部选中时“多选”才选中。 图片效果: 简单示例,代码如下, fenpage.aspx的代码: <% @ Page Language="C#" AutoEventWireup="true" CodeFile="fenpage.aspx.cs" Inherits="gridview_fenpage" %> <! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > < html xmlns ="http://www.w3.org/1999/xhtml" > < head runat ="server" > < title ></ title > < script language ="javascript" type ="text/javascript" > // 判断多选是否与选中项(没有选中的返回false) function slcNo_click() { if (document.form1.checkboxname.length) { for (var i=0;i<document.form1.checkboxname.length;i++) { if(document.form1.checkboxname[i].checked) { return true; } } } else { if(document.form1.checkboxname.checked) { return true; } } alert("请选择后再操作!"); return false; } // 鼠标经过改变行的颜色 if (!objbeforeItem) { var objbeforeItem=null; var objbeforeItembackgroundColor=null; } function ItemOver(obj) { if(objbeforeItem) { objbeforeItem.style.backgroundColor = objbeforeItembackgroundColor; } objbeforeItembackgroundColor = obj.style.backgroundColor; objbeforeItem = obj; obj.style.backgroundColor = "#B9D1F3"; } // // 多选的全选与取消 function checkJs(boolvalue) { if(document.all.checkboxname.length>1) { for(var i=0;i<document.all.checkboxname.length;i++) { document.all.checkboxname[i].checked = boolvalue; } } else document.all.checkboxname.checked = boolvalue; } // // 只有全部选中时“全选”选中 function SingleCheckJs() { var flag1=false; var flag2=false; if (document.form1.checkboxname.length) { for (var i=0;i<document.form1.checkboxname.length;i++) { if(document.form1.checkboxname[i].checked) flag1 = true; else flag2 = true; } } else { if(document.form1.checkboxname.checked) flag1 = true; else flag2 = true; } if(flag1==true&&flag2==false) document.getElementById("chk").checked = true; else document.getElementById("chk").checked = false; } // </ script > </ head > < body > < form id ="form1" runat ="server" > < div > < table cellpadding ="0" cellspacing ="0" border ="0" width ="80%" style ="font-size: 11px" > < tr > < td align ="center" > < asp:GridView ID ="GridView1" runat ="server" Width ="100%" CellPadding ="4" ForeColor ="#333333" AutoGenerateColumns ="False" AllowPaging ="True" PageSize ="12" BorderColor ="Silver" BorderStyle ="Solid" BorderWidth ="1px" OnRowDataBound ="GridView1_RowDataBound" ShowFooter ="True" EmptyDataText ="没有数据记录!!" AllowSorting ="True" OnSorting ="GridView1_Sorting" > < Columns > < asp:BoundField HeaderText ="编号" DataField ="id" Visible ="False" /> < asp:TemplateField HeaderText ="<input type='checkbox' id='chk' name='chk' οnclick='checkJs(this.checked);' />全选" FooterText ="全选" > < ItemTemplate > < input type ="checkbox" id ="checkboxname" name ="checkboxname" value ='<%# DataBinder.Eval(Container.DataItem, "id")% > ' οnclick='SingleCheckJs();' /> </ ItemTemplate > </ asp:TemplateField > < asp:TemplateField HeaderText ="单选" FooterText ="单选" > < ItemTemplate > < input type ="radio" id ="RadioName" name ="RadioName" value ='<%# Eval("id")% > ' /> </ ItemTemplate > </ asp:TemplateField > < asp:TemplateField HeaderText ="自增列" FooterText ="自增列" > < ItemTemplate > <% # (Container.DataItemIndex+1).ToString() %> </ ItemTemplate > </ asp:TemplateField > < asp:BoundField HeaderText ="姓名" FooterText ="姓名" DataField ="name" SortExpression ="name" /> < asp:BoundField HeaderText ="身份证号" FooterText ="身份证号" DataField ="card" SortExpression ="card" /> < asp:BoundField HeaderText ="价格" FooterText ="价格" DataField ="price" DataFormatString ="{0:¥#,##0.00}" HtmlEncode ="False" SortExpression ="price" /> < asp:BoundField HeaderText ="数字" FooterText ="数字" DataField ="price" DataFormatString ="{0:0.00}" HtmlEncode ="False" SortExpression ="price" /> < asp:BoundField HeaderText ="建立时间" FooterText ="建立时间" DataField ="createdate" DataFormatString ="{0:yyyy年MM月dd日 hh时mm分ss秒}" HtmlEncode ="False" SortExpression ="createdate" /> </ Columns > < RowStyle BackColor ="#F7F6F3" ForeColor ="#333333" /> < EditRowStyle BackColor ="#999999" /> < SelectedRowStyle BackColor ="#E2DED6" Font-Bold ="True" ForeColor ="#333333" /> < PagerStyle BackColor ="#284775" ForeColor ="White" HorizontalAlign ="Center" /> < AlternatingRowStyle BackColor ="White" ForeColor ="#284775" /> < PagerSettings Visible ="False" /> < FooterStyle Font-Bold ="True" /> < HeaderStyle Font-Bold ="False" Font-Italic ="False" /> </ asp:GridView > </ td > </ tr > < tr > < td align ="center" style ="height: 25px" > < asp:LinkButton ID ="btnFirst" CommandArgument ="first" OnClick ="PagerButtonClick" runat ="server" > 首 页 </ asp:LinkButton > < asp:LinkButton ID ="btnPrev" CommandArgument ="prev" OnClick ="PagerButtonClick" runat ="server" > 上一页 </ asp:LinkButton > < asp:LinkButton ID ="btnNext" CommandArgument ="next" OnClick ="PagerButtonClick" runat ="server" > 下一页 </ asp:LinkButton > < asp:LinkButton ID ="btnLast" CommandArgument ="last" OnClick ="PagerButtonClick" runat ="server" > 尾 页 </ asp:LinkButton > < asp:Label ID ="LblCurrentIndex" runat ="server" ></ asp:Label > < asp:Label ID ="LblPageCount" runat ="server" ></ asp:Label > < asp:Label ID ="LblRecordCount" runat ="server" ></ asp:Label ></ td > </ tr > < tr > < td > < asp:Button ID ="Button2" runat ="server" Text ="checkbox得到选择的行" OnClick ="Button2_Click" > </ asp:Button > < asp:Button ID ="Button1" runat ="server" Text ="radio得到选择的行" OnClick ="Button1_Click" ></ asp:Button > </ td > </ tr > </ table > </ div > </ form > </ body > </ html > fenpage.aspx.cs的代码: using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Data.SqlClient; public partial class gridview_fenpage : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Button2.Attributes["onclick"] = "return slcNo_click();"; GridViewBind(""); } private void GridViewBind(string Sqlsort) { string connStr = ConfigurationManager.ConnectionStrings["ConnString1"].ConnectionString; string SqlStr = "SELECT * FROM test01 where id<1000" + Sqlsort; DataSet ds = new DataSet(); try { SqlConnection conn = new SqlConnection(connStr); if (conn.State.ToString() == "Closed") conn.Open(); SqlDataAdapter da = new SqlDataAdapter(SqlStr, conn); da.Fill(ds, "test01"); if (conn.State.ToString() == "Open") conn.Close(); GridView1.DataSource = ds.Tables[0].DefaultView; GridView1.DataBind(); LblCurrentIndex.Text = "第 " + (GridView1.PageIndex + 1).ToString() + " 页"; LblPageCount.Text = "共 " + GridView1 .PageCount.ToString()+ " 页"; LblRecordCount.Text = "总共 "+ds.Tables[0].Rows.Count.ToString()+" 条"; if (ds.Tables[0].Rows.Count == 0) { btnFirst.Visible = false; btnPrev.Visible = false; btnNext.Visible = false; btnLast.Visible = false; LblCurrentIndex.Visible = false; LblPageCount.Visible = false; LblRecordCount.Visible = false; } else if (GridView1.PageCount == 1) { btnFirst.Visible = false; btnPrev.Visible = false; btnNext.Visible = false; btnLast.Visible = false; } // 计算生成分页页码,分别为:"首 页" "上一页" "下一页" "尾 页" btnFirst.CommandName = "1"; btnPrev.CommandName = (GridView1.PageIndex == 0 ? "1" : GridView1.PageIndex.ToString()); btnNext.CommandName = (GridView1.PageCount == 1 ? GridView1.PageCount.ToString() : (GridView1.PageIndex + 2).ToString()); btnLast.CommandName = GridView1.PageCount.ToString(); // } catch(Exception ex) { Response.Write("数据库错误,错误原因:"+ex.Message); Response.End(); } } protected void PagerButtonClick(object sender, EventArgs e) { GridView1.PageIndex = Convert.ToInt32(((LinkButton)sender).CommandName)-1; GridViewBind(""); } protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { e.Row.Attributes["onmouseover"] = "ItemOver(this)"; } protected void Button2_Click(object sender, EventArgs e) { string str=""; string []ckb=null; str=Request.Form.Get("checkboxname"); ckb=str.Split(new char[]{','}); Response.Write("直接在页面中得到的值为:"+str+"<br>"); Response.Write("处理后存放在数组中,如下:<br>"); for(int i=0;i<ckb.Length;i++) { Response.Write("ckb["+i+"]的值为:"+ckb[i]+"<br>"); } } protected void Button1_Click(object sender, EventArgs e) { Response.Write(Request.Form.Get("RadioName")); } protected void GridView1_Sorting(object sender, GridViewSortEventArgs e) { string sql = ""; if (ViewState["SortDirection"] == null || ViewState["SortDirection"].ToString().CompareTo("") == 0) { ViewState["SortDirection"] = " desc"; } else ViewState["SortDirection"] = ""; sql = " order by " + e.SortExpression + ViewState["SortDirection"]; GridViewBind(sql); }} 数据库中表的生成代码: CREATE TABLE [ dbo ] . [ test01 ] ( [ id ] [ decimal ] ( 18 , 0 ) IDENTITY ( 1 , 1 ) NOT NULL , [ name ] [ varchar ] ( 50 ) COLLATE Chinese_PRC_CI_AS NULL , [ card ] [ varchar ] ( 50 ) COLLATE Chinese_PRC_CI_AS NULL , [ createdate ] [ datetime ] NULL ) ON [ PRIMARY ] GO ALTER TABLE [ dbo ] . [ test01 ] ADD CONSTRAINT [ DF_test01_createdate ] DEFAULT ( getdate ()) FOR [ createdate ] , CONSTRAINT [ PK_test01 ] PRIMARY KEY CLUSTERED ( [ id ] ) ON [ PRIMARY ] GO