我采用access数据库,使用很麻烦,SQL语句很多不支持 !
access支持not in 语句,也可以top 1 ,但是不支持top 0 ,所以第一面的话有点麻烦
另外,我想干脆用DataGrid自带的分页功能(不使用自定义分页),但是点击下一页按钮或者数码页,却没有任何反应!!请哪位大侠指点这是为什么或者提供一个更好的方案!

解决方案 »

  1.   

    public class CasusList : System.Web.UI.UserControl
    {
    protected System.Web.UI.WebControls.Label TotalRecord;
    protected System.Web.UI.WebControls.Label TotalPage;
    protected System.Web.UI.WebControls.Label PageNo;
    protected System.Web.UI.WebControls.LinkButton Back;
    protected System.Web.UI.WebControls.TextBox JumpPage;
    protected System.Web.UI.WebControls.DataGrid DG_Report;
    protected System.Web.UI.WebControls.LinkButton Next;
    protected System.Web.UI.WebControls.Button BT_Search;
    protected System.Web.UI.WebControls.ImageButton Jump;
    protected System.Web.UI.WebControls.TextBox TB_Key; string cmStr = "SELECT ID, Title,Publictime "+
               "FROM Casus "+
               "ORDER BY Publictime DESC"; private void Page_Load(object sender, System.EventArgs e)
    {
    if(!IsPostBack)
    {
    BindGrid();
    }
    } #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器
    /// 修改此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {
    this.BT_Search.Click += new System.EventHandler(this.BT_Search_Click);
    this.DG_Report.DeleteCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DG_Report_DeleteCommand);
    this.DG_Report.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DG_Report_ItemDataBound);
    this.Back.Click += new System.EventHandler(this.Back_Click);
    this.Next.Click += new System.EventHandler(this.Next_Click);
    this.Jump.Click += new System.Web.UI.ImageClickEventHandler(this.Jump_Click);
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion //数据绑定
    private void BindGrid()
    {
    DataOperate dp = new DataOperate("CnStr");
    SqlDataAdapter da = new SqlDataAdapter(cmStr,dp.Cn);
                DataSet ds = new DataSet();
    da.Fill(ds, "TradeNews");
                DG_Report.DataSource = ds.Tables["TradeNews"].DefaultView;
                DG_Report.DataBind();
                TotalRecord.Text = ds.Tables["TradeNews"].Rows.Count.ToString();
                PageFooter();
    } //页数、第几页统计显示
    private void PageFooter()
    {
    TotalPage.Text="共:"+DG_Report.PageCount+"页";
    int PageNum = DG_Report.CurrentPageIndex + 1;
    PageNo.Text="当前第: "+PageNum.ToString()+"       页";  
    JumpPage.Text = PageNum.ToString();                         
    } //上一页
    private void Back_Click(object sender, System.EventArgs e)
    {
    if(DG_Report.CurrentPageIndex <= 0)
    Response.Write("<script>alert('已是第一页!');</script>");
    else
    {
    DG_Report.CurrentPageIndex -= 1;
    BindGrid();
    int PageNum = this.DG_Report.CurrentPageIndex + 1;
    this.JumpPage.Text = PageNum.ToString();
    }
    } //下一页
    private void Next_Click(object sender, System.EventArgs e)
    {
    if(DG_Report.CurrentPageIndex >= DG_Report.PageCount-1)
    Response.Write("<script>alert('已到最后一页!');</script>");
    else
    {
    DG_Report.CurrentPageIndex += 1;
    BindGrid();
    int PageNum = this.DG_Report.CurrentPageIndex + 1;
    this.JumpPage.Text = PageNum.ToString();
    }
    } //转到第几页
    private void Jump_Click(object sender, System.Web.UI.ImageClickEventArgs e)
    {
    Regex digitregex = new Regex(@"^[0-9]\d*[.]?\d*$");
    if (!digitregex.IsMatch(JumpPage.Text))
    {
    JumpPage.Text="";
    Response.Write("<script>alert('只能输入数字!');</script>");
    }
    else
    {
    int js;
    js=Convert.ToInt32(JumpPage.Text.ToString())-1;
    if (js>DG_Report.PageCount-1)
    {
    Response.Write("<script>alert('输入的数值要在总页数范围之内!');</script>");
    }
    else if(js<0) 
    {
    Response.Write("<script>alert('输入的数值要在总页数范围之内!');</script>");
    }
    else
    {
    DG_Report.CurrentPageIndex=js;
    BindGrid();
    }
    }
    } //绑定
    private void DG_Report_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if(e.Item.ItemIndex > -1)
    e.Item.Cells[2].Text = Convert.ToString(Convert.ToInt32(DG_Report.CurrentPageIndex)*15 + e.Item.ItemIndex + 1);

    e.Item.Cells[6].Attributes.Add("onclick", "if(confirm('您确信要删除吗?')){}else{return false}");
    } //删除域名
    private void DG_Report_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    TradeNews TNews = new TradeNews();
    TNews.ID = Convert.ToInt32(e.Item.Cells[1].Text);
    try
    {
    TNews.Delete();
    Response.Write("<script>alert('删除成功!');</script>");
    BindGrid();
    }
    catch(Exception ex)
    {
    Response.Write("<script>alert('"+ex.Message+"');</script>");
    }
    } //搜索
    private void BT_Search_Click(object sender, System.EventArgs e)
    {
        DG_Report.CurrentPageIndex = 0; string keyword = this.TB_Key.Text.Trim(); cmStr =  "SELECT ID, Title,Publictime "+
         "FROM Casus "+
         "WHERE KeyWords like '%"+keyword+"%' "+
         "ORDER BY Publictime DESC";
    BindGrid();
    }
    }
    }
      

  2.   

    <%@ Control Language="c#" AutoEventWireup="false" Codebehind="CasusList.ascx.cs" Inherits="huawei.CasusList" TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>
    <FONT face="宋体">
    <table cellSpacing="0" cellPadding="0" width="100%" border="0">
    <TBODY>
    <tr>
    <td align="left">请输入关键字:
    <asp:TextBox id="TB_Key" runat="server"></asp:TextBox>
    <asp:Button id="BT_Search" runat="server" Text="搜索"></asp:Button></td>
    </tr>
    <tr>
    <td height="10"></td>
    </tr>
    <tr>
    <td><asp:datagrid id="DG_Report" AllowPaging="True" PageSize="15" Width="100%" AutoGenerateColumns="False"
    runat="server">
    <AlternatingItemStyle BackColor="WhiteSmoke"></AlternatingItemStyle>
    <HeaderStyle BackColor="#CCCCCC"></HeaderStyle>
    <Columns>
    <asp:TemplateColumn>
    <HeaderStyle HorizontalAlign="Center"></HeaderStyle>
    <ItemStyle HorizontalAlign="Center"></ItemStyle>
    <ItemTemplate>
    <IMG height="13" src="../images/14.gif" width="13">
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:BoundColumn Visible="False" DataField="ID">
    <HeaderStyle HorizontalAlign="Center"></HeaderStyle>
    <ItemStyle HorizontalAlign="Center"></ItemStyle>
    </asp:BoundColumn>
    <asp:BoundColumn HeaderText="序号">
    <HeaderStyle HorizontalAlign="Center"></HeaderStyle>
    <ItemStyle HorizontalAlign="Center"></ItemStyle>
    </asp:BoundColumn>
    <asp:HyperLinkColumn Target="_blank" DataNavigateUrlFormatString="{0}" DataTextField="Title" HeaderText="标题">
    <HeaderStyle HorizontalAlign="Center"></HeaderStyle>
    <ItemStyle HorizontalAlign="Left"></ItemStyle>
    </asp:HyperLinkColumn>
    <asp:BoundColumn DataField="Publictime" HeaderText="发布日期" DataFormatString="{0:d}">
    <HeaderStyle HorizontalAlign="Center"></HeaderStyle>
    <ItemStyle HorizontalAlign="Center"></ItemStyle>
    </asp:BoundColumn>
    <asp:HyperLinkColumn Text="编辑" DataNavigateUrlField="ID" DataNavigateUrlFormatString="../Admin/Admin_Casus.aspx?Action=Edit&amp;ID={0}"
    HeaderText="编辑" NavigateUrl="../Admin/Admin_Casus.aspx"></asp:HyperLinkColumn>
    <asp:ButtonColumn Text="删除" HeaderText="删除" CommandName="Delete">
    <HeaderStyle HorizontalAlign="Center"></HeaderStyle>
    <ItemStyle HorizontalAlign="Center"></ItemStyle>
    </asp:ButtonColumn>
    </Columns>
    <PagerStyle Visible="False"></PagerStyle>
    </asp:datagrid>
    </FONT></TD></TR>
    <TR>
    <TD align="right"><FONT face="宋体">共有记录:
    <asp:label id="TotalRecord" runat="server">Label</asp:label>条
    <asp:label id="TotalPage" Width="74px" runat="server">共几页</asp:label><asp:label id="PageNo" Width="85px" runat="server">第几页</asp:label>&nbsp;<asp:linkbutton id="Back" runat="server" ForeColor="Blue" Font-Underline="True">前页</asp:linkbutton>&nbsp;
    <asp:linkbutton id="Next" runat="server" ForeColor="Blue" Font-Underline="True">后页</asp:linkbutton>&nbsp; 
    跳转到第:<asp:textbox id="JumpPage" Width="40px" runat="server">1</asp:textbox>页
    <asp:imagebutton id="Jump" runat="server" ImageUrl="../images/go1.gif"></asp:imagebutton></FONT></TD>
    </TR>
    </TBODY></TABLE></FONT>
      

  3.   

    点击DataGrid PageIndexChanged private void Page_Load(object sender, System.EventArgs e)
    {
    dgbind();// 在此处放置用户代码以初始化页面
    }private void dgbind()
    {
    dbmanage dbs=new dbmanage();
    SqlConnection cn;
    cn=dbs.GetConnection();
    string strSql="select userid,username,coname,addtime,fag,isfree from hyuser order by addtime DESC";

    DataSet ds;
    ds=dbs.FillDs(strSql,cn);
    DataGrid1.DataSource=ds.Tables[0].DefaultView;
    try 

    this.DataGrid1.DataBind(); 

    catch 

    if(this.DataGrid1.CurrentPageIndex>0) 
    {
    this.DataGrid1.CurrentPageIndex = 0 ; 

    this.DataGrid1.DataBind(); 

    }
    cn.Close();
    cn.Dispose();
    }
    private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
    {
    DataGrid1.CurrentPageIndex=e.NewPageIndex;
    dgbind();
    }
      

  4.   

    你不要使用dataGrid自带的接钮!
    自已在创建几个按钮,然后写代码:主要是针对dataGrid的currpageIndex属性