控件datagrid显示用自带的页码分页功能,另外我做了一个搜索功能,实现条件搜索与datagrid控制件绑定,将搜索的结果显示到控件datagrid中。
初始页即datagrid控件的首页条件下能正常搜索,但如果点击datagrid控件的其它页码即除页码1的其它页码,然后再实现搜索,就发生了错误???
还有当点击一个提交按钮之后,如何实现确定是否添加该信息????????????
错误信息:无效的 CurrentPageIndex 值。它必须大于等于 0 且小于 PageCount。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Web.HttpException: 无效的 CurrentPageIndex 值。它必须大于等于 0 且小于 PageCount。

解决方案 »

  1.   

    .aspx文件
    <%@ Register TagPrefix="select" Namespace="WangAn.Public.WebControls" Assembly="WangAn.Public.WebControls" %>
    <%@ Page language="c#" Codebehind="leaveword_mana.aspx.cs" AutoEventWireup="false" Inherits="_023qiye.EnterPrise.leaveword_mana" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
      <HEAD>
    <title>leaveword_mana</title>
    <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
    <meta content="C#" name="CODE_LANGUAGE">
    <meta content="JavaScript" name="vs_defaultClientScript">
    <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
    <LINK href="member.css" rel="stylesheet">
      </HEAD>
    <body leftMargin="0" topMargin="0">
    <form id="Form1" method="post" runat="server">
    <!-- #include file="include/Calendar.inc" -->
    <TABLE class="liststyle" id="Table1" cellSpacing="0" cellPadding="2" width="700" align="center"
    border="0">
    <tr>
    <td><span class="spanf">您现在的位置:<span class="spant">留言信息</span></span>
    </td>
    </tr>
    <tr>
    <td>
    <div class="dotted"></div>
    <FONT face="宋体"></FONT><FONT face="宋体"></FONT>
    <br>
    </td>
    </tr>
    <tr>
    <td>留言搜索:
    <asp:textbox id="keyword" runat="server" Width="144px"></asp:textbox>&nbsp;&nbsp; 
    起止时间:从 <input id="start_date" style="WIDTH: 112px; HEIGHT: 20px" onfocus="calendar()" type="text"
    size="13" runat="server" Width="120px">到 <input id="end_date" onfocus="calendar()" type="text" size="13" runat="server" Width="120px">&nbsp;&nbsp;
    <asp:imagebutton id="ImageButton1" onclick="Search_Title" runat="server" ImageUrl="images\bbot.gif"></asp:imagebutton>&nbsp;
    <asp:imagebutton id="all_img" onclick="All_Record" ImageUrl="/images/bbotsy.gif" Runat="server"></asp:imagebutton></td>
    </tr>
    <TR>
    <TD><asp:datagrid id="MyDataGrid" runat="server" Width="100%" PageSize="12" OnPageIndexChanged="Sel_Page"
    DataKeyField="msg_id" AutoGenerateColumns="False" AllowPaging="True">
    <SelectedItemStyle CssClass="DG_Select">
    </SelectedItemStyle><AlternatingItemStyle CssClass="DG_Alter">
    </AlternatingItemStyle><ItemStyle HorizontalAlign="Center" CssClass="DG_Item">
    </ItemStyle><HeaderStyle CssClass="DG_Head">
    </HeaderStyle><FooterStyle CssClass="DG_Footer">
    </FooterStyle><Columns>
    <asp:BoundColumn Visible="False" DataField="msg_id" HeaderText="ID号"></asp:BoundColumn>
    <asp:HyperLinkColumn Target="_self" DataNavigateUrlField="msg_id" DataNavigateUrlFormatString="leaveword_show.aspx?id={0}" DataTextField="title" HeaderText="留言标题" NavigateUrl="leaveword_show.aspx"></asp:HyperLinkColumn>
    <asp:BoundColumn DataField="co_name" HeaderText="企业名称"></asp:BoundColumn>
    <asp:BoundColumn DataField="contact_name" HeaderText="联系人"></asp:BoundColumn>
    <asp:BoundColumn DataField="msg_time" HeaderText="留言时间" DataFormatString="{0:d}"></asp:BoundColumn>
    <asp:TemplateColumn HeaderText="删除">
    <ItemTemplate>
    <asp:CheckBox ID="del" Runat="server"></asp:CheckBox>

    </ItemTemplate>
    </asp:TemplateColumn>
    </Columns><PagerStyle HorizontalAlign="Center" PageButtonCount="15" CssClass="DG_Pager" Mode="NumericPages">
    </PagerStyle>
    </asp:datagrid></TD>
    </TR>
    <TR>
    <TD align="right"><select:selectall id="select_cancel" runat="server"></select:selectall>
    <asp:button id="del_img" onclick="Del_Record" Runat="server" style='BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;BACKGROUND-IMAGE:url(/images/bbotsc.gif);BORDER-BOTTOM-WIDTH:0px;CURSOR:hand;BORDER-RIGHT-WIDTH:0px'
    Width="59" Height="25"></asp:button></TD>
    </TR>
    <TR>
    <TD align="center"><asp:label id="showstatus" Runat="server"></asp:label></TD>
    </TR>
    <TR>
    <TD>
    <DIV class="dotted"></DIV>
    <FONT face="宋体"></FONT><FONT face="宋体"></FONT>
    <BR>
    </TD>
    </TR>
    </TABLE>
    </form>
    </body>
    </HTML>
      

  2.   

    .aspx.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;
    using System.Configuration;
    using Wang_an;
    namespace _023qiye.EnterPrise
    {
    /// <summary>
    /// leaveword_mana 的摘要说明。
    /// </summary>
    public class leaveword_mana : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.Label showstatus;
    protected System.Web.UI.WebControls.ImageButton ImageButton1;
    protected System.Web.UI.WebControls.TextBox keyword;
    protected System.Web.UI.HtmlControls.HtmlInputText start_date;
    protected System.Web.UI.HtmlControls.HtmlInputText end_date;
    protected System.Web.UI.WebControls.ImageButton all_img;
    protected WangAn.Public.WebControls.SelectAll select_cancel;
            protected System.Web.UI.WebControls.ImageButton Imagebutton2;
            protected WangAn.Public.WebControls.SelectAll Selectall1;
            protected System.Web.UI.WebControls.ImageButton Imagebutton3;
    protected System.Web.UI.WebControls.Button del_img;

    protected System.Web.UI.WebControls.DataGrid MyDataGrid;

    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    Function.UserValidation();
                if(!IsPostBack)
                {
                    Bind();
                     JS.ButtonAddConfirm(this.del_img,JS.ConfirmType.Delete);
                }
    } public void Bind()
    {
    SqlConnection MyConn=new SqlConnection(ConfigurationSettings.AppSettings["sqlconn"]);
    MyConn.Open();
    string selstr="select * from co_message  where uid="+Session["uid"]+" order by msg_id desc";
    DataSet mydataset=new DataSet();
    SqlDataAdapter myadapter=new SqlDataAdapter(selstr,MyConn);
    myadapter.Fill(mydataset,"co_message");
    MyDataGrid.DataSource =mydataset.Tables["co_message"].DefaultView;
    MyDataGrid.DataBind();
    MyConn.Close();
    showstatus.Text=BackInc.ShowStatus(MyDataGrid.PageCount,MyDataGrid.PageSize,((int)MyDataGrid.CurrentPageIndex+1));
    }
    public void Sel_Page(object sender,DataGridPageChangedEventArgs e)
    {
    MyDataGrid.CurrentPageIndex=e.NewPageIndex;
    Bind();
    }
            
    public void Search_Title(object sender,ImageClickEventArgs e)
    {   
    string condition=""; if(keyword.Text.Trim()!="")
    {condition+=" and title like '%"+keyword.Text.Trim()+"%'";}
    if(start_date.Value!="")
    {condition+=" and msg_time>'"+start_date.Value+"'";}
    if(end_date.Value!="")
    {condition+=" and msg_time<'"+end_date.Value+"'";} 
                
        string selstr="select * from co_message where uid="+Session["uid"]+" and 1=1"+condition+" order by msg_id desc";
    SqlConnection MyConn=new SqlConnection(ConfigurationSettings.AppSettings["sqlconn"]);
    MyConn.Open();
    DataSet mydataset=new DataSet();
    SqlDataAdapter myadapter=new SqlDataAdapter(selstr,MyConn);
    myadapter.Fill(mydataset,"co_message");
    MyDataGrid.DataSource =mydataset.Tables["co_message"].DefaultView;
    MyDataGrid.DataBind();
    MyConn.Close();
    } #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    private void InitializeComponent()
    {
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion
          
    public void Del_Record(object sender,EventArgs e)
    {  
                string TempStr="";
    for(int i=0;i<this.MyDataGrid.Items.Count;i++)
    {
        if(((CheckBox)MyDataGrid.Items[i].FindControl("del")).Checked)
    {
       TempStr+=this.MyDataGrid.Items[i].Cells[0].Text+",";
    }
    }
               
    if(TempStr.Trim().Length<=0)
    {return;}
    TempStr=TempStr.Substring(0,TempStr.LastIndexOf(","));

       string delstr="delete  from co_message where msg_id in ("+TempStr+")";
       SqlConnection MyConn=new SqlConnection(ConfigurationSettings.AppSettings["sqlconn"]);
       MyConn.Open();
                   SqlCommand sqlcmd=new SqlCommand(delstr,MyConn);
                   sqlcmd.ExecuteNonQuery();
                   MyConn.Close();
            Bind();
    }
    public void All_Record(object sender,ImageClickEventArgs e)
    {
        keyword.Text="";
    start_date.Value="";
    end_date.Value="";
    Bind();
    }
    }
    }
      

  3.   

    <input maxLength=20 name=zhuti size=12 type=text>搜索
    ____________________________________________________________
    zhuti=Request.Form["zhuti"];
    OleDbDataAdapter myAdapter=new OleDbDataAdapter("select *  from xiangxi  where zhuti like '%"+zhuti+"%' order by zhuangtai desc,lastrq desc " ,MyConn);
    DataSet myDataSet=new DataSet();
    myAdapter.Fill(myDataSet,"+ban+");
    myDataGrid.DataSource=myDataSet;
    myDataGrid.DataBind();