CS代码:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;namespace testorders
{
public class WebForm1 : System.Web.UI.Page
{
private DataSet myds;
private SqlDataAdapter myadapter;
private SqlConnection mycon;
protected System.Web.UI.WebControls.DataGrid MyDataGrid;
protected System.Web.UI.WebControls.LinkButton LinkButton2;
protected System.Web.UI.WebControls.LinkButton LinkButton3;
protected System.Web.UI.WebControls.LinkButton LinkButton4;
protected System.Web.UI.WebControls.LinkButton LinkButton5;
protected System.Web.UI.WebControls.Button cmdGo;
protected System.Web.UI.WebControls.Button cmdAll;
protected System.Web.UI.WebControls.Button cmdDel;
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.Label Label2;
protected System.Web.UI.WebControls.TextBox TextBox1;
private string dbstr= "Server=localhost;uid=sa;pwd=sa;database=northwind";
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack )
{
this.MyDataGrid.Columns[0].Visible = false;
this.BindGrid ();
}
}
//************************添充数据集的方法
public void datasetFill(string sql,string tablename)
{
if (sql.Length ==0 || tablename.Length ==0 || sql ==null ||tablename == null ) throw new Exception ("method use error,please check query or tableNm");
try
{

this.mycon = new SqlConnection (this.dbstr);
this.myadapter = new SqlDataAdapter (sql,mycon);
this.myds = new DataSet ();
this.mycon.Open ();
this.myadapter.FillSchema (myds,SchemaType.Source,tablename);
this.myadapter.Fill (myds,tablename);
}
catch
{}
finally
{
if (this.mycon!=null)
{
this.mycon.Close ();
}
}
}
//***********************绑定及排序方法
private void BindGrid()
{
datasetFill  ("select orderid,shipname,customerid,orderdate,shipaddress,shipcity from orders  ","orders");
MyDataGrid.DataSource = this.myds ;
MyDataGrid.DataBind ();
ShowStats();
}
//*************************************分页
protected void PagerButtonClick(object sender, CommandEventArgs e)
{
string arg = (string)e.CommandArgument;
switch (arg)
{
case ("next"):
if(this.MyDataGrid.CurrentPageIndex <(this.MyDataGrid.PageCount -1))
this.MyDataGrid.CurrentPageIndex ++;
break;
case("prev"):
if (this.MyDataGrid.CurrentPageIndex >0)
this.MyDataGrid.CurrentPageIndex --;
break;
case("last"):
this.MyDataGrid.CurrentPageIndex = this.MyDataGrid.PageCount -1;
break;
default:
this.MyDataGrid.CurrentPageIndex = 0;
break;
}
BindGrid();
}
void ShowStats()
{
this.Label1 .Text = "当前页为:" + System.Convert.ToString ((System.Convert.ToInt32 (MyDataGrid.CurrentPageIndex)+1)) ;
this.Label2 .Text = "共" + this.MyDataGrid.PageCount + "页";
}
private void cmdGo_Click(object sender, System.EventArgs e)
{
if (this.TextBox1 .Text.Trim ()!="")
{
int PageI=Int32.Parse(this.TextBox1.Text .Trim())-1;
if (PageI >=0 && PageI < (MyDataGrid.PageCount))
{
MyDataGrid.CurrentPageIndex = PageI ;
}
BindGrid();
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
InitializeComponent();
base.OnInit(e);
}
private void InitializeComponent()
{    
this.MyDataGrid.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.MyDataGrid_PageIndexChanged);
this.cmdGo.Click += new System.EventHandler(this.cmdGo_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
private void MyDataGrid_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
this.MyDataGrid.CurrentPageIndex = e.NewPageIndex ;
BindGrid();
}
//********************全部选中
private void cmdAll_Click(object sender, System.EventArgs e)
{
//求的代码
}
//******************批量删除
private void cmdDel_Click(object sender, System.EventArgs e)
{
////求的代码
}
}
}

解决方案 »

  1.   

    DataGrid1序号简单,去孟子老大那里看一看就行了。
      

  2.   

    孟老大关于序号的文章我看了,对翻页以后就无法实现序号的自动增长!!-------------用這個試試:
      Sub MyDataGrid_ItemDataBound(S as Object, E As DataGridItemEventArgs)
              dim gdrGetMyDataGrid as DataGrid
      gdrGetMyDataGrid = Page.FindControl("MyDataGrid")
          If(e.Item.ItemType=ListItemType.Item Or    e.Item.ItemType=ListItemType.AlternatingItem) Then
                   dim lblListSerialNumber as Label
           lblListSerialNumber = CType(e.Item.FindControl("lblSerialNumber"),Label)
                   lblListSerialNumber.text=(gdrGetMyDataGrid.CurrentPageIndex*gdrGetMyDataGrid.PageSize) +e.Item.ItemIndex+1
              End If
      End Sub
    -----------
        <asp:TemplateColumn HeaderText="Num">
                  <ItemTemplate>
                     <asp:Label id="lblSerialNumber" runat="server"/>
                  </ItemTemplate>
     </asp:TemplateColumn>
      

  3.   

    可以删除一个分页的全部记录:
    在DataGrid中加一个模板列CheckBox,再在另外的地方加二个按钮"全部删除","全部选定".
    单击相应按钮实现其功能.
    foreach(System.Web.UI.WebControls.DataGridItem item in this.DataGridPswy.Items)
    {
    System.Web.UI.WebControls.CheckBox CBoxtrue = (System.Web.UI.WebControls.CheckBox)item.FindControl("CBoxSelect");
    CBoxtrue.Checked = this.CBoxControl.Checked;
    }
      

  4.   

    全部删除
    全部删除应该很简单三!因为你只需要把table.Clear()然后再updata回数据库就可以了!或者从table里面取出相应的信息循环对数据库进行一个删除,然后对table.Clear();全部选定
    设置一个标志,在datagrid的itemcreat事件里面进行判断,如果标志为全选那么itemcreat的时候就把所有的checkbox.checked设置为true.