Click here to Skip to main content
13,139,682 members (40,196 online)
Rate this:
 
Please Sign up or sign in to vote.
See more:
I have a gridview in my page it has allow paging but when I click next number it gives me this error: System.Web.HttpException: The GridView 'GridView1' fired event PageIndexChanging which wasn't handled. I dontknow how can I solve it and I have to solve it untill tommorrow I really need help .
    <asp:GridView ID="GridView1" runat="server" AllowPaging="True"
                CellPadding="4"  DataKeyNames="idFromUsers" AutoGenerateColumns="False"
    ForeColor="#333333" GridLines="None" onrowcommand="GridView1_RowCommand"
               ><AlternatingRowStyle BackColor="White" ForeColor="#284775" />
    <Columns>
     <asp:BoundField HeaderText="order code" DataField="idfromIndex"  />
     <asp:BoundField HeaderText="customer code" DataField="idFromUsers" />
     <asp:BoundField HeaderText="factor number"  DataField="indexNO"/>
     <asp:BoundField HeaderText="bank name" DataField="bankName" />
     <asp:BoundField HeaderText="order date" DataField="orderDate" DataFormatString="{0:yyyy/MM/dd}"/>
        <asp:ButtonField CommandName="cart" Text="shopping cart detailsد" >
        <ItemStyle HorizontalAlign="Center" />
        </asp:ButtonField>
        <asp:ButtonField CommandName="customer" Text="customer details">
        <ItemStyle HorizontalAlign="Center" />
        </asp:ButtonField>
        </Columns>
    <EditRowStyle BackColor="#999999" />
    <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
    <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
    <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
    <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
    <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
    <SortedAscendingCellStyle BackColor="#E9E7E2" />
    <SortedAscendingHeaderStyle BackColor="#506C8C" />
    <SortedDescendingCellStyle BackColor="#FFFDF8" />
    <SortedDescendingHeaderStyle BackColor="#6F8DAE" />
</asp:GridView>
 

 
      protected void Page_Load(object sender, EventArgs e)
      {
    if (!IsPostBack)
    {
 
        initialGrid1();
    }
 
      }
 
       private void initialGrid1()
       {
    getDistinctOrderId();
    DataTable myDT = getTheData();
 
    GridView1.DataSource = myDT;
    GridView1.DataBind();
 
     }
 
         private void getDistinctOrderId()
        {
    string command = "";
 
    if (ViewState["searchFactor"] != null)
    {
        int index = Convert.ToInt32(ViewState["searchFactor"]);
 
        switch (index)
        {
 
            case 1:
                {
                    string fact = factorNO.Text.Trim();
                    command = "SELECT min(id), [idfromIndex] FROM OrdersView WHERE [idfromIndex] IN(SELECT DISTINCT [idfromIndex] FROM OrdersView where IsObserve='True' and Ispay='False'  and indexNO ='" + fact + "' )  GROUP BY [idfromIndex]  ";
 
                }
                break;
            case 2:
                {
                    string name = TextBox3.Text.Trim();
                    string familly = TextBox4.Text.Trim();
                    command = "SELECT min(id), [idfromIndex] FROM OrdersView WHERE [idfromIndex] IN(SELECT DISTINCT [idfromIndex] FROM OrdersView where IsObserve='True' and Ispay='False'  and user_name ='" + name + "'  and user_familly ='" + familly + "' )  GROUP BY [idfromIndex]  ";
                }
                break;
            case 3:
                {
                    command = getSearchDate();
                    //string startdate = TextBox1.Text.Trim();
                    //string  enddate = TextBox2.Text.Trim();
                    //command = "SELECT min(id), [idfromIndex] FROM OrdersView WHERE [idfromIndex] IN(SELECT DISTINCT [idfromIndex] FROM OrdersView where IsObserve='True' and Ispay='False' and orderDate >='" + startdate + "'  and orderDate <='" + enddate + "' )  GROUP BY [idfromIndex]  ";
                }
                break;
            case 0:
                {
                    command = "SELECT min(id), [idfromIndex] FROM OrdersView WHERE [idfromIndex] IN(SELECT DISTINCT [idfromIndex] FROM OrdersView where  IsObserve='True' and Ispay='False' )  GROUP BY [idfromIndex]  ";
 
                }
                break;
 
            default:
                {
                    command = "SELECT min(id), [idfromIndex] FROM OrdersView WHERE [idfromIndex] IN(SELECT DISTINCT [idfromIndex] FROM OrdersView where  IsObserve='True' and Ispay='False')  GROUP BY [idfromIndex]  ";
 
                }
                break;
        }
    }
    else
    {
        command = "SELECT min(id), [idfromIndex] FROM OrdersView WHERE [idfromIndex] IN(SELECT DISTINCT [idfromIndex] FROM OrdersView where  IsObserve='True' and Ispay='False')  GROUP BY [idfromIndex]  ";
 
    }
 
    SqlConnection myConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["mobile_storeConnectionString"].ConnectionString);
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = myConnection;
    cmd.CommandType = CommandType.Text;
    cmd.CommandText = command;
    DataView MyDv = new DataView();
 
    try
    {
        myConnection.Open();
        SqlDataReader dr = cmd.ExecuteReader();
        DataTable dt = new DataTable();
        dt.Load(dr);
        MyDv = dt.DefaultView;
        for (int i = 0; i < MyDv.Count; i++)
        {
            if (i == 0)
            {
                distinctList = MyDv[i][0].ToString() + ",";
            }
            if (i == MyDv.Count - 1)
            {
                distinctList += MyDv[i][0].ToString();
            }
            else if (i != 0 && i != MyDv.Count - 1)
            {
                distinctList += MyDv[i][0].ToString() + ",";
            }
        }
        dr.Close();
 
        //Label1.Text = MyDv.Count.ToString();
 
    }
    catch (Exception EXP)
    {
 

    }
    finally
    { myConnection.Close(); }
}
 

          public DataTable getTheData()
            {
 
    DataSet DS = new DataSet();
    SqlConnection myConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString1"].ConnectionString);
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = myConnection;
    cmd.CommandType = CommandType.Text;
    cmd.CommandText = "select idfromIndex,indexNO,bankName,Ispay,orderDate,idFromUsers,orderId from factors where orderId IN (" + distinctList + ") and IsObserve='True'";
    // SqlDataAdapter objSQLAdapter = new SqlDataAdapter("select idfromIndex,indexNO,bankName,Ispay,orderDate,idFromUsers,orderId from factors where orderId IN (" + distinctList + ") and IsObserve='False'", myConnection); objSQLAdapter.Fill(DS, "mobile_store");
    //ViewState["idfromindex"] = DS.Tables[0].Rows[0].ce
    // DataTable dt = new DataTable();
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    da.Fill(DS);
       try
        {
        myConnection.Open();
        cmd.ExecuteNonQuery();
 
 
         }
       catch (Exception EXP)
       {
 

         }
        finally
      { myConnection.Close(); }
         return DS.Tables[0];
        }
Posted 14-Feb-13 5:05am
elmirag635
Updated 14-Feb-13 5:48am
v2
Rate this: bad
 
good
Please Sign up or sign in to vote.

Solution 1

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView1.PageIndex = e.NewPageIndex;
        bindGridView(); //bindgridview will get the data  and bind it again
    }



Try above code and see if that works.
  Permalink  
Rate this: bad
 
good
Please Sign up or sign in to vote.

Solution 2

<asp:GridView ID="GridView2" runat="server" AllowPaging="True"
CellPadding="4" DataKeyNames="idFromUsers" AutoGenerateColumns="False" onpageindexchanging="GridView1_PageIndexChanging"
ForeColor="#333333" GridLines="None"  onrowcommand="GridView1_RowCommand"
>



and after that code

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView1.PageIndex = e.NewPageIndex;
        bindGrid(); 
    }
  Permalink  
Rate this: bad
 
good
Please Sign up or sign in to vote.

Solution 3

HI,

You can use datapager to give paging to your grid.

Add the following code to the aspx page below the grid control:

<asp:DataPager ID="DataPagerPro" runat="server"
            PagedControlID="Grid"
            PageSize="8">
    ...
</asp:DataPager>


Add the following event to code behind:

protected void Grid_PagePropertiesChanging(object sender, PagePropertiesChangingEventArgs e)
{
    this.DataPagerPro.SetPageProperties(e.StartRowIndex, e.MaximumRows, false);
    Grid.DataBind();
}


Make sure your grid is having the "Grid_PagePropertiesChanging" method defined.

Thanks
  Permalink  

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Top Experts
Last 24hrsThis month


Advertise | Privacy |
Web04 | 2.8.170915.1 | Last Updated 14 Feb 2013
Copyright © CodeProject, 1999-2017
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100