1

我有一个gridView:-

<asp:GridView ID="gvw_Lab_Details" AllowPaging="true" PageSize="3" OnPageIndexChanging="gvw_Lab_Details_PageIndexChanging" runat="server" EmptyDataText="No Previous Enrollments were Found." SkinID="gridviewSkin2">
</asp:GridView>

在服务器端:-

    public DataSet LabDS
    {
        get { return (DataSet)ViewState["LabDetails"]; }
        set { ViewState["LabDetails"] = value; }
    }

    #region Initialize.
    string _Requestdate = string.Empty;
    string _ID = string.Empty;
    #endregion

    #region Page Methods
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            // extracting the Lab_Requested Date from Query String.
            _Requestdate = (Request.QueryString["info"]);
            _ID = ((MyStateBag)Session["MyStateBag"]).MemberID;
            GetLabResults();
        }
    }

    #endregion

    private void GetLabResults()
    {
      using (SqlConnection cn = new SqlConnection(DBConnect.SqlServerConnection))
       {
            cn.Open();
            #region Pulls Existing Enrollments from SQL
            DataTable dt = new DataTable();
            using (SqlCommand cm = cn.CreateCommand())
            {
                // Create SQL Statement
                StringBuilder ct = new StringBuilder();
                ct.AppendLine("SELECT DISTINCT Key, Date, "
                + "NAME_First + ' ' + NAME_MI + ' ' + NAME_Last, "
                RESULT_VALUE, RESULT_UNITS ");
                ct.AppendLine("FROM [test].[dbo].[test]");
                ct.AppendLine("WHERE Date = @Date and ID = @ID");
                cm.Parameters.AddWithValue("@Date", _Requestdate);
                cm.Parameters.AddWithValue("@ID", _ID);
                cm.CommandType = CommandType.Text;
                cm.CommandText = ct.ToString();
                // Execute 
                cm.ExecuteNonQuery();

            #region Populate Gridview with extracted Data.
                SqlDataAdapter dr = new SqlDataAdapter(cm);
                dr.Fill(dt);
                this.LabDS  = new DataSet();
                this.LabDS.Tables.Add(dt);
                LoadGridView(1);
             #endregion
            }
            #endregion

        private void LoadGridView(int PageIndex)
        {
            gvw_Lab_Details.DataSource = this.LabDS;
            gvw_Lab_Details.DataBind();
        }


        protected void gvw_Lab_Details_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            LoadGridView(e.NewPageIndex);
        }

但是,我的索引似乎不起作用,即第一页上显示了 3 个或更少的结果,但是一旦结果超过 4 个,我就会得到默认的“未找到以前的注册”。关于我哪里出错的任何见解?

这是一个 .NET Web 应用程序。

4

1 回答 1

3

你错过了一条重要的信息。您必须告诉 GridView 您要更改为哪个页面:

 protected void gvw_Lab_Details_PageIndexChanging(object sender, GridViewPageEventArgs e)
 {
        gvw_Lab_Details.PageIndex = e.NewPageIndex;
        LoadGridView(e.NewPageIndex);
 }
于 2014-03-06T02:07:24.940 回答