网格视图分页问题,转到前一页时参数超出范围


Specified argument was out of the range of valid values.
Parameter name: value
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
Parameter name: value
Source Error:
Line 95:     protected void changed(object sender, GridViewPageEventArgs e)
Line 96:     {
Line 97:         GridView1.PageIndex = e.NewPageIndex;
Line 98:         //GridView1.DataBind();
Line 99:     }

Source File: c:UsersSartajDesktopwebWebsitesAsp_website_projectv1AddInventory.aspx.cs    Line: 97
Stack Trace:
[ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
Parameter name: value]
   System.Web.UI.WebControls.GridView.set_PageIndex(Int32 value) +1318287
   AddInventory.changed(Object sender, GridViewPageEventArgs e) in c:UsersSartajDesktopwebWebsitesAsp_website_projectv1AddInventory.aspx.cs:97
   System.Web.UI.WebControls.GridView.OnPageIndexChanging(GridViewPageEventArgs e) +133
   System.Web.UI.WebControls.GridView.HandlePage(Int32 newPage) +86
   System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup) +464
   System.Web.UI.WebControls.GridView.RaisePostBackEvent(String eventArgument) +207
   System.Web.UI.WebControls.GridView.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +175
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565

My gridview is->
<asp:GridView ID="GridView1" runat="server" EnableModelValidation="True" AutoGenerateColumns="true" 
        BackColor="#CCCCCC" BorderColor="Black" BorderStyle="None" BorderWidth="1px" 
        CellPadding="7" CellSpacing="5" AllowPaging="True" PageSize="1" OnPageIndexChanging="changed" >
                    <PagerSettings Mode="NextPrevious" />
                    <FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" />
                    <HeaderStyle BackColor="#999999" Font-Bold="True" ForeColor="White" />
                    <PagerStyle ForeColor="#0033CC" HorizontalAlign="Center" />
                    <RowStyle BackColor="Silver" ForeColor="White" />
                    <SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" />
                </asp:GridView>
**my backend code is->**
protected void addInventoryButton_Click(object sender, EventArgs e)
    {
        addInventoryAllSelectDataSource.InsertParameters[0].DefaultValue = imeiText.Text;
        addInventoryAllSelectDataSource.InsertParameters[1].DefaultValue = carrierDropDown.SelectedValue;
        addInventoryAllSelectDataSource.InsertParameters[2].DefaultValue = ((int)d1[modelDropDown.SelectedIndex][0]).ToString();
        addInventoryAllSelectDataSource.InsertParameters[3].DefaultValue = costPriceText.Text;
        addInventoryAllSelectDataSource.InsertParameters[4].DefaultValue = sellingPriceText.Text;
        addInventoryAllSelectDataSource.InsertParameters[5].DefaultValue = dateText.Text;
        addInventoryAllSelectDataSource.InsertParameters[6].DefaultValue = smartphoneRadioList.SelectedValue;
        addInventoryAllSelectDataSource.InsertParameters[7].DefaultValue = transferOrderNoText.Text;
        addInventoryAllSelectDataSource.InsertParameters[8].DefaultValue = Session["user"].ToString();
        addInventoryAllSelectDataSource.Insert();
       // gridList.Add(new AddImei(imeiText,carrierDropDown.SelectedValue,(((int)d1[modelDropDown.SelectedIndex][0]).ToString())
           // ,Convert.ToDouble(costPriceText.Text),Convert.ToDouble(sellingPriceText.Text),dateText.Text);
        //GridView1.DataSource = gridList;
        //GridView1.DataBind();
        //GridView1.DataSource = selectInventoryDataSource.Select(DataSourceSelectArguments.Empty);
        //GridView1.DataBind();
        addInventoryAllSelectDataSource.SelectCommand = "SELECT A.IMEI,A.CARRIER, F.MAKE, F.MODEL, A.COST_PRICE,A.SELLING_PRICE,A.DATE,A.SMARTPHONE,A.TRANSFER_ORDER_NO,A.USER_ID FROM AddInventory AS A FULL OUTER JOIN "+carrierDropDown.SelectedValue+" AS F ON A.CARRIER_ID_INVENTORY = F.CARRIER_ID WHERE (A.IMEI = '"+imeiText.Text+"')";
        d3  = (DataView)addInventoryAllSelectDataSource.Select(DataSourceSelectArguments.Empty);
        gridList.Add(new AddImei(d3[0][0].ToString(), d3[0][1].ToString(), d3[0][2].ToString(), d3[0][3].ToString(), Convert.ToDouble(d3[0][4]), Convert.ToDouble(d3[0][5]), Convert.ToDateTime(d3[0][6]).Date, Convert.ToBoolean(d3[0][7]), d3[0][8].ToString(), d3[0][9].ToString()));
        //AddImei ob1=new AddImei(d3[0][0].ToString(), d3[0][1].ToString(), d3[0][2].ToString(), d3[0][3].ToString(), Convert.ToDouble(d3[0][4]), Convert.ToDouble(d3[0][5]), Convert.ToDateTime(d3[0][6]).Date, Convert.ToBoolean(d3[0][7]), d3[0][8].ToString(), d3[0][9].ToString());
        GridView1.DataSource = gridList;
        GridView1.DataBind();
    }

问题是,当我点击下一页时,它不会改变页面,我再次点击然后页面改变。转到下一页后,我点击上一页没有任何变化,我再次点击,然后我得到上述异常。我一直在寻找排序这个问题几个小时,不知道我在这里做错了什么

你必须调用在PageIndexChanged事件后填充GridView1的函数

 protected void changed(object sender, GridViewPageEventArgs e)
 {
     GridView1.PageIndex = e.NewPageIndex;
     this.fillGridView1();
 }

最新更新