实话告诉你,应该需要编程的你用web matrix么?它带有几个数据模板的,,你看看它生成的几个例子就什么都明白了。结贴吧。

解决方案 »

  1.   

    在DataGrid的PageIndexChanged事件里加上:
    private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
    {
    DataGrid1.CurrentPageIndex=e.NewPageIndex;
    BindGrid();//你的绑定数据程序
    }
      

  2.   

    http://www.aspxcn.com/dotnetarticle/show.aspx?id=96
      

  3.   

    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;namespace PhotoLib
    {
    public class LibPictures : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.Label lblRecordCounts;
    protected System.Web.UI.WebControls.Label lblCurrentPage;
    protected System.Web.UI.WebControls.Label lblTotalPages;
    protected System.Web.UI.WebControls.DataList list;
    protected System.Web.UI.WebControls.LinkButton lbtnFirstPage;
    protected System.Web.UI.WebControls.LinkButton lbtnPreviousPage;
    protected System.Web.UI.WebControls.LinkButton lbtnNextPage;
    protected System.Web.UI.WebControls.LinkButton lbtnLastPage;
    protected System.Web.UI.HtmlControls.HtmlInputHidden hiSearchStr;
    protected String searchStr;
    private DataView dvPhoto;
    private int intCurrentPage = 1,linkbuttonnum=10;
    protected System.Web.UI.WebControls.Table table;
    protected System.Web.UI.WebControls.Label lblRange;
    protected int PageSize;

    private void Page_Load(object sender, System.EventArgs e)
    {
    //设定PageSize 
    PageSize = 12; if(Request.Form["hiSearchStr"]!=null)
    {
    searchStr = Request.Form["hiSearchStr"];
    }
    else
    searchStr = " and 1=2";

    ViewState["searchStr"] = searchStr; if(Request.Form["hiSearchStr"]!=null)
    {
    if(ViewState["Clear"]==null)  // 这个判断很重要
    {
    Cache.Remove("dvPhoto");
    BindGrid();
    ViewState["Clear"] = "HasValue";
    }
    } if(!IsPostBack)
    {
    Cache.Remove("dvPhoto");
    ViewState["currentpage"] = 1;
    } BindGrid();
    CreateNumPage(); //Response.Write(ViewState["searchStr"]);
    } #region Web Form Designer generated code
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.list.ItemDataBound += new System.Web.UI.WebControls.DataListItemEventHandler(this.list_ItemDataBound);
    this.lbtnFirstPage.Click += new System.EventHandler(this.lbtnFirstPage_Click);
    this.lbtnPreviousPage.Click += new System.EventHandler(this.lbtnPreviousPage_Click);
    this.lbtnNextPage.Click += new System.EventHandler(this.lbtnNextPage_Click);
    this.lbtnLastPage.Click += new System.EventHandler(this.lbtnLastPage_Click);
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion // 数据绑定到DataGrid
    private void BindGrid()
    {
    GetDataSource();
    SetPagingControls(); list.DataSource = dvPhoto;
    list.DataBind();
    } private void CreateNumPage()
    {
    if(Cache["dvPhoto"] != null)
    {
    dvPhoto = (DataView)Cache["dvPhoto"];
    } int start,end,startpoint;
    int recordcount = dvPhoto.Count;
    int totalpages = (int)ViewState["totalpage"];
    intCurrentPage = (int)ViewState["currentpage"];
    bool showafter = true, showbefore = true;
    startpoint =  (int)System.Math.Ceiling((intCurrentPage-1)/linkbuttonnum);

    TableCell cell = (TableCell)table.FindControl("Link");

    if(totalpages<=linkbuttonnum)
    {
    linkbuttonnum = totalpages;
    start = 1;
    end = linkbuttonnum+1;
    showafter = false;
    showbefore = false;
    }
    else
    {
    if((totalpages-(startpoint*linkbuttonnum))<=linkbuttonnum)
    {
    start = startpoint*linkbuttonnum+1;
    end = start + totalpages-(startpoint*linkbuttonnum);
    showafter = false;
    }
    else
    {
    start = startpoint*linkbuttonnum+1;
    end = (startpoint+1)*linkbuttonnum+1;
    showbefore = (startpoint==0)?false:true;
    }
    }

    if(showbefore)
    {
    LinkButton lbm = new LinkButton();
    lbm.CommandName = "numbutton";
    int beforepoint = startpoint - 1;
    lbm.CommandArgument = (beforepoint*linkbuttonnum+1).ToString();
    lbm.ID = (beforepoint*linkbuttonnum+1).ToString();
    lbm.Text = "...";
    lbm.Font.Size = FontUnit.Point(9);
    lbm.Command += new System.Web.UI.WebControls.CommandEventHandler(OnLinkClick);
    cell.Controls.Add(lbm);
    Literal ll = new Literal();
    ll.Text = "&nbsp;";
    cell.Controls.Add(ll);
    } for(int i=start;i<end;i++)
    {
    if(intCurrentPage != i)
    {
    LinkButton lb = new LinkButton();
    lb.CommandName = "numbutton";
    lb.CommandArgument = i.ToString();
    lb.ID = i.ToString();
    lb.Text = i.ToString();
    lb.ForeColor = Color.Black;
    lb.Font.Bold = false;
    lb.Font.Size = FontUnit.Point(9);
    lb.Command += new System.Web.UI.WebControls.CommandEventHandler(OnLinkClick);
    cell.Controls.Add(lb);
    }
    else
    {
    Label lbl = new Label();
    lbl.Text = "[" + i.ToString() + "]";
    lbl.ForeColor = Color.Red;
    lbl.Font.Bold = true;
    lbl.Font.Size = FontUnit.Point(9);
    cell.Controls.Add(lbl);
    }
    Literal l = new Literal();
    l.Text = "&nbsp;";
    cell.Controls.Add(l);
    }
    if(showafter)
    {
    LinkButton lbm = new LinkButton();
    lbm.CommandName = "numbutton";
    int afterpoint = startpoint + 1;
    lbm.CommandArgument = (afterpoint*linkbuttonnum+1).ToString();
    lbm.ID = (afterpoint*linkbuttonnum+1).ToString();
    lbm.Text = "...";
    lbm.Font.Size = FontUnit.Point(9);
    lbm.Command += new System.Web.UI.WebControls.CommandEventHandler(OnLinkClick);
    cell.Controls.Add(lbm);
    }
    }
      

  4.   

    // 创建数据集
    private DataSet CreateDataSet()
    {
    PhotoLib.PicturesDB pictures = new PhotoLib.PicturesDB();
    DataSet ds = pictures.GetPicturesByAdvanceSearch(ViewState["searchStr"].ToString());   DataTable dt = ds.Tables[0];
    dt.Columns.Add("RowID",Type.GetType("System.Int32"));
    dt.AcceptChanges(); return ds;
    } // 获得数据源
    private void GetDataSource()
    {
    if(Cache["dvPhoto"] != null)
    {
    dvPhoto = (DataView)Cache["dvPhoto"];
    }
    else
    {
    dvPhoto = CreateDataSet().Tables[0].DefaultView;
    Cache["dvPhoto"] = dvPhoto;
    } RenumberRowsForPaging(ref dvPhoto);
    } // 对分页进行行的重新编号
    private void RenumberRowsForPaging(ref DataView dv)
    {
    dvPhoto.RowFilter = ""; int i = 1;
    foreach(DataRowView drwv in dv)
    {
    drwv["RowID"] = i;
    i += 1;
    }
    } // 设置分页控制
    public void SetPagingControls()
    {
    string strFirstRec = ((intCurrentPage - 1) * PageSize).ToString();
    string strLastRec = ((intCurrentPage * PageSize) + 1).ToString();
    lblRecordCounts.Text = "共找到 " + dvPhoto.Count.ToString() + " 张图片"; int intTotalPages = int.Parse(System.Math.Ceiling(dvPhoto.Count / PageSize).ToString());

    if(dvPhoto.Count % PageSize != 0)
    intTotalPages += 1;
    dvPhoto.RowFilter = "RowID > " + strFirstRec + " AND RowID < " + strLastRec; intCurrentPage = (int)ViewState["currentpage"];  
    lblCurrentPage.Text = intCurrentPage.ToString(); lblTotalPages.Text = intTotalPages.ToString();
    ViewState["totalpage"] = intTotalPages; int startRange,endRange;
    startRange = int.Parse(strFirstRec)+1;
    endRange = int.Parse(strLastRec)-1;

    if(intCurrentPage == 1)
    {
    lbtnPreviousPage.Enabled = false;
    if(intTotalPages > 1)
    lbtnNextPage.Enabled = true;
    else
    {
    lbtnNextPage.Enabled = false;
    endRange = dvPhoto.Count;
    }
    }
    else
    {
    lbtnPreviousPage.Enabled = true;
    if(intCurrentPage == intTotalPages)
    {
    lbtnNextPage.Enabled = false;
    endRange = startRange + dvPhoto.Count -1;
    }
    else
    lbtnNextPage.Enabled = true;
    } if(dvPhoto.Count == 0)
    {
    lbtnPreviousPage.Enabled = false;
    lbtnNextPage.Enabled = false;
    lblCurrentPage.Text = "0";
    startRange = endRange = 0;
    } lblRange.Text = "本页显示:" + startRange.ToString() + " - " + endRange.ToString() + " 张";
    } private void ClearLinkButton()
    {
    ViewState[""] = "true";
    TableCell cell = (TableCell)table.FindControl("Link");
    cell.Controls.Clear();
    } private void OnLinkClick(object sender, System.Web.UI.WebControls.CommandEventArgs e)
    {
    int lbId = Int32.Parse(e.CommandArgument.ToString());

    ViewState["currentpage"] = intCurrentPage = lbId;
    ClearLinkButton();
    BindGrid();
    CreateNumPage();
    } private void lbtnFirstPage_Click(object sender, System.EventArgs e)
    {
    ViewState["currentpage"] = intCurrentPage = 1;
    ClearLinkButton();
    BindGrid();
    CreateNumPage();
    } private void lbtnPreviousPage_Click(object sender, System.EventArgs e)
    {
    intCurrentPage = (int)ViewState["currentpage"] - 1;
    ViewState["currentpage"] = intCurrentPage;
    ClearLinkButton();
    BindGrid();
    CreateNumPage();
    } private void lbtnNextPage_Click(object sender, System.EventArgs e)
    {
    intCurrentPage = (int)ViewState["currentpage"] + 1;
    ViewState["currentpage"] = intCurrentPage;
    ClearLinkButton();
    BindGrid();
    CreateNumPage();
    } private void lbtnLastPage_Click(object sender, System.EventArgs e)
    {
    ViewState["currentpage"] = int.Parse(lblTotalPages.Text);
    intCurrentPage = int.Parse(lblTotalPages.Text);
    ClearLinkButton();
    BindGrid();
    CreateNumPage();
    } protected String GetFileName(String imageid)
    {
    String yearstr = imageid.Substring(0,4);
    String datestr = imageid.Substring(0,8);
    String typestr = imageid.Substring(11,1); String path = "PicLib/SmallPic/" + yearstr +"p/PhotoC/" + datestr + "/"; // 分类图片
    if(typestr == "b")
    path = "PicLib/SmallPic/" + yearstr +"p/PhotoP/" + datestr + "/"; // 专业图片 return (path + imageid);
    } protected int GetPicWidth(String imageid)
    {
    String yearstr = imageid.Substring(0,4);
    String datestr = imageid.Substring(0,8);
    String typestr = imageid.Substring(11,1); String path = "PicLib/MidPic/" + yearstr +"p/PhotoC/" + datestr + "/"; // 分类图片
    if(typestr == "b")
    path = "PicLib/MidPic/" + yearstr +"p/PhotoP/" + datestr + "/"; // 专业图片 imageid = imageid.Substring(0,13)+"2.jpg";
    System.Drawing.Image img = null; try
    {
    img = System.Drawing.Image.FromFile(Server.MapPath(path+imageid));
    return (img.Height>=573)?(img.Width+24):(img.Width+6);
    }
    catch
    {
    return 0;
    }
    finally
    {
    if(img!=null) img.Dispose();
    }
    } protected int GetPicHeight(String imageid)
    {
    String yearstr = imageid.Substring(0,4);
    String datestr = imageid.Substring(0,8);
    String typestr = imageid.Substring(11,1); String path = "PicLib/MidPic/" + yearstr +"p/PhotoC/" + datestr + "/"; // 分类图片
    if(typestr == "b")
    path = "PicLib/MidPic/" + yearstr +"p/PhotoP/" + datestr + "/"; // 专业图片 imageid = imageid.Substring(0,13)+"2.jpg";
    System.Drawing.Image img = null; try
    {
    img = System.Drawing.Image.FromFile(Server.MapPath(path+imageid));
    return (img.Height>=573)?573:(img.Height+25);
    }
    catch
    {
    return 0;
    }
    finally
    {
    if(img!=null) img.Dispose();
    }
    } protected String GetPictureNumber(String pictureId)
    {
    int num;
    PhotoLib.PicturesDB pictures = new PhotoLib.PicturesDB();
    DataSet ds = pictures.GetPictureDetails(pictureId);
    num = ds.Tables[0].Rows.Count; if(num>1)
    return "(" + num + "张)";
    else
    return String.Empty;
    } private void list_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
    {
    HtmlInputHidden pimg  = (HtmlInputHidden) e.Item.FindControl("pimg");
    HtmlImage myimg = (HtmlImage)e.Item.FindControl("myimg");
    HtmlAnchor link = (HtmlAnchor)e.Item.FindControl("link");
    myimg.Src = GetFileName(pimg.Value);  
    if(GetPicWidth(pimg.Value)!=0)
    link.HRef = "javascript:window.showModalDialog('Customers/ShowMidPicture.aspx?pid="+pimg.Value+"','','dialogHeight:"+GetPicHeight(pimg.Value)+"px;dialogWidth:"+GetPicWidth(pimg.Value)+"px;center:yes;help:no;status:no;scroll:auto')";
    }
    }
    }
      

  5.   

    http://lucky_elove.www1.dotnetplayground.com/ShowDetail.aspx?id=B12283DE-DB20-4322-ACCC-12724442808A