<body> <form id="form1" runat="server"> <div> <asp:GridView ID="GridView1" runat="server" AllowPaging="true" PageSize="15" BackColor="Wheat" BorderColor="#336699" BorderStyle="Solid" BorderWidth="1px" CellPadding="2" Font-Names="Verdana" Font-Size="10pt" Width="60%" AutoGenerateColumns="false" onpageindexchanging="GridView1_PageIndexChanging"> <Columns> <asp:TemplateField HeaderText="Product ID"> <ItemTemplate> <%#((GridViewRow)Container).RowIndex + 1 %> </ItemTemplate> </asp:TemplateField> <asp:TemplateField> <HeaderTemplate> <asp:CheckBox ID="ChkSelectAll" runat="server" Enabled="true" ToolTip="Check to select all row in this page" onclick="return SelectAllRecords(this)" OnCheckedChanged="ChkSelectAll_CheckedChanged" /> </HeaderTemplate> <ItemTemplate> <asp:CheckBox ID="CheckBox1" runat="server" onclick="return unCheck()" /> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Product Name"> <ItemTemplate> <%#Eval("ProductName") %> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Unit Price"> <ItemTemplate> <%#Eval("UnitPrice") %> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Units in Stock"> <ItemTemplate> <%#Eval("UnitsInStock") %> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> </div> </form></body>
protected void Page_Load(object sender, EventArgs e){ if (!Page.IsPostBack) { BindData(); }}private void BindData(){ SqlConnection conn; SqlCommand cmd; SqlDataAdapter sda; DataTable dt; conn = new SqlConnection(); conn.ConnectionString = ConfigurationManager.ConnectionStrings["NWConnectionString"].ConnectionString; cmd = new SqlCommand(); cmd.CommandText = "SELECT ProductID, ProductName, UnitPrice, UnitsInStock FROM Products"; cmd.CommandType = CommandType.Text; cmd.Connection = conn; dt = new DataTable(); sda = new SqlDataAdapter(); sda.SelectCommand = cmd; sda.Fill(dt); GridView1.DataSource = dt.DefaultView; GridView1.DataBind(); sda.Dispose(); cmd.Dispose(); conn.Dispose(); RePopulateCheckBoxes();}protected void ChkSelectAll_CheckedChanged(object sender, EventArgs e){ CheckBox chkBox; foreach (GridViewRow gvRow in GridView1.Rows) { chkBox = (CheckBox)(gvRow.Cells[1].FindControl("CheckBox1")); chkBox.Checked = ((CheckBox)sender).Checked; }}protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e){ foreach (GridViewRow gdvrow in GridView1.Rows) { var chkbox = gdvrow.FindControl("CheckBox1") as CheckBox; IDataItemContainer iDContainer = (IDataItemContainer)chkbox.NamingContainer; if (chkbox.Checked) { KeepRowIndex(iDContainer.DataItemIndex); } else { RemoveRowIndex(iDContainer.DataItemIndex); } } GridView1.PageIndex = e.NewPageIndex; BindData();}private List<Int32> SelectedProductIndex{ get { if (ViewState["SELECTED_PRODUCT_INDEX"] == null) { ViewState["SELECTED_PRODUCT_INDEX"] = new List<Int32>(); } return (List<Int32>)ViewState["SELECTED_PRODUCT_INDEX"]; }}private void RemoveRowIndex(int p){ SelectedProductIndex.Remove(p);}private void KeepRowIndex(int p){ if (!SelectedProductIndex.Exists(i => i == p)) { SelectedProductIndex.Add(p); }}private void RePopulateCheckBoxes(){ foreach (GridViewRow gvRow in GridView1.Rows) { var chkBox = gvRow.FindControl("CheckBox1") as CheckBox; IDataItemContainer iDContainer = (IDataItemContainer)chkBox.NamingContainer; if (SelectedProductIndex != null) { if (SelectedProductIndex.Exists(i => i == iDContainer.DataItemIndex)) { chkBox.Checked = true; } } }}
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" PageSize="3"> <PagerSettings FirstPageImageUrl="~/first.gif" LastPageImageUrl="~/last.gif" Mode="NextPreviousFirstLast" NextPageImageUrl="~/next.gif" PreviousPageImageUrl="~/prev.gif" /> <PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" /></asp:GridView>
<PagerSettings FirstPageText="First" LastPageText="Last"NextPageText="Next" PreviousPageText="Previous" /><PagerStyle HorizontalAlign="Center" />