why when I click next page in gridview it gives me error?
<p>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 </p>

<pre><code>&lt;asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
                CellPadding="4"  DataKeyNames="idFromUsers" AutoGenerateColumns="False"
    ForeColor="#333333" GridLines="None" onrowcommand="GridView1_RowCommand" 
               &gt;&lt;AlternatingRowStyle BackColor="White" ForeColor="#284775" /&gt;
    &lt;Columns&gt;
     &lt;asp:BoundField HeaderText="order code" DataField="idfromIndex"  /&gt;
     &lt;asp:BoundField HeaderText="customer code" DataField="idFromUsers" /&gt;
     &lt;asp:BoundField HeaderText="factor number"  DataField="indexNO"/&gt;
     &lt;asp:BoundField HeaderText="bank name" DataField="bankName" /&gt;
     &lt;asp:BoundField HeaderText="order date" DataField="orderDate" DataFormatString="{0:yyyy/MM/dd}"/&gt;
        &lt;asp:ButtonField CommandName="cart" Text="shopping cart detailsد" &gt;
        &lt;ItemStyle HorizontalAlign="Center" /&gt;
        &lt;/asp:ButtonField&gt;
        &lt;asp:ButtonField CommandName="customer" Text="customer details"&gt;
        &lt;ItemStyle HorizontalAlign="Center" /&gt;
        &lt;/asp:ButtonField&gt;
        &lt;/Columns&gt;
    &lt;EditRowStyle BackColor="#999999" /&gt;
    &lt;FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /&gt;
    &lt;HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /&gt;
    &lt;PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" /&gt;
    &lt;RowStyle BackColor="#F7F6F3" ForeColor="#333333" /&gt;
    &lt;SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" /&gt;
    &lt;SortedAscendingCellStyle BackColor="#E9E7E2" /&gt;
    &lt;SortedAscendingHeaderStyle BackColor="#506C8C" /&gt;
    &lt;SortedDescendingCellStyle BackColor="#FFFDF8" /&gt;
    &lt;SortedDescendingHeaderStyle BackColor="#6F8DAE" /&gt;
&lt;/asp:GridView&gt;
</code></pre>

<p>my c# code:</p>

<pre><code>   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 &gt;='" + startdate + "'  and orderDate &lt;='" + 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 &lt; 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 &amp;&amp; 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];
}
</code></pre>
