Click here to Skip to main content
15,867,867 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
Let me explain you my problem in short.
I have a grid that shows data of car's. I have paging and each page shows 5 records. I get the combination of selected car models, mileage, KM run, Cost etc. Basically the result depends on the search criteria. All of this is stored in session and the value is retrieved from the session and passed to the a query.
Everything works fine on my local machine but on live server paging doesn't work on IE.

Here is How my Grid looks.

XML
<asp:GridView ID="grdCarSearch" runat="server" AutoGenerateColumns="False" onrowdatabound="grdCarSearch_RowDataBound"
                             PageSize="5" AllowPaging="True" onrowcommand="grdCarSearch_RowCommand"
                             onpageindexchanging="grdCarSearch_PageIndexChanging"
                             Width="100%">
                             <Columns>

                             <asp:TemplateField HeaderText="SN" ItemStyle-VerticalAlign="Top">
                               <ItemTemplate><asp:Label ID="lblPSerial" runat="server"><%#Container.DataItemIndex+1 %></asp:Label></ItemTemplate>
                             </asp:TemplateField>

                             <asp:BoundField datafield="Car_ID" HeaderStyle-BackColor="#f0f0f0" HeaderText="" ItemStyle-VerticalAlign="Top">
                             <HeaderStyle CssClass="grid"></HeaderStyle></asp:BoundField>

                             <asp:TemplateField >
                                   <ItemTemplate>
                                   <!-- Table Within Grid Strted Here-->
                                     <table width="90%" cellspacing="1" cellpadding="1" border="0">
                                        <tr>
                                            <td bgcolor="#ffffff" >

                                           <!-- Sub TAble Within Grid -->
                                            <table width="90%" cellspacing="0" cellpadding="0" border="0">
                                               <tr>
                                                   <!-- first colomn including car image started here -->
                                                   <td width="220" >
                                                       <table width="100%" cellspacing="2" cellpadding="2" border="0">
                                                            <tr><td width="200px" height="120px" ><asp:Image ID="imgCar" Width="200px"  runat="server" AlternateText="" /></td><td>&nbsp;</td></tr>
                                                            <tr><td><asp:ImageButton ID="ZoomImageBtn" runat="server" ImageUrl="images/icon_zoom.gif" OnClientClick=<%#"window.open('ZoomImage.aspx?Car_ID="+ Eval("Car_ID")+ "',null,'width=450,height=350,top=100,left=10','true');" %> /></td></tr>
                                                        </table>
                                                    </td>
                                                    <!-- first colomn including car image closed here -->

                                                    <!-- second Column including car detail started here  -->
                                                    <td valign="top">
                                                        <table width="100%" cellspacing="0" cellpadding="0" border="0" class="normal alltoleft" style="font-size:11px;">

                                                            <tr>
                                                                <td style="font-weight:bold; font-size:30" colspan="3" Height="50">
                                                                    <asp:Label ID="lblCarName" runat="server" Text='<%#Eval("Car_Name")%>'></asp:Label>
                                                                </td>
                                                            </tr>

                                                            <tr><td>Registration</td><td width="14"> : </td><td width="421"><%#Eval("Car_RegistrationDate") %></td></tr>

                                                            <tr><td>Mileage</td><td> :</td> <td> <%#Eval("Mileage_Id")%></td></tr>

                                                            <tr><td>Colour</td>  <td> :</td><td> <%#Eval("Car_Colour")%></td></tr>

                                                            <tr><td>Trim</td>  <td> :</td><td> <%#Eval("Car_Trim")%></td></tr>

                                                            <tr><td>Price</td> <td> :</td><td> <%#Eval("Car_Price")%></td></tr>

                                                            <tr><td>Dealer</td><td> :</td><td> <%#Eval("Dealer_Name")%></td></tr>

                                                        </table>
                                                    </td>
                                                    <!-- second Column of car detail closed here -->

                                                  </tr>
                                             </table>
                                             <!-- Sub Table Within Grid -->

                                          </td>
                                        </tr>
                                     </table>
                                     <!-- Table within Grid Closed HEre-->
                                   </ItemTemplate>
                                </asp:TemplateField>

                                <asp:TemplateField ItemStyle-VerticalAlign="Top">
                                    <ItemTemplate >
                                        <asp:ImageButton ID="imgbtnMoreInfo" CommandArgument='<%#Eval("Car_ID") %>' CommandName="MoreInfo" ImageUrl="~/images/butt_moreinfo.gif" runat="server" CausesValidation="false" PostBackUrl='<%#String.Format("CarMoreInfo.aspx?Car_ID={0}",Eval("Car_ID"))%>' /><br />
                                        <asp:ImageButton ID="imgbtnContactDealer" CommandArgument='<%#Eval("Car_ID") %>' CommandName="ContactDealer" runat="server" ImageUrl="~/images/butt_contactdealer.gif" CausesValidation="false" PostBackUrl='<%#String.Format("ContactDealer.aspx?Car_ID={0}",Eval("Car_ID"))%>' /><br />
                                        <asp:ImageButton ID="imgbtnEmailAFriend" CommandArgument='<%#Eval("Car_ID") %>' CommandName="EmailFriend" runat="server" ImageUrl="~/images/butt_emailafriend.gif" CausesValidation="false" PostBackUrl='<%#String.Format("EmailFriend.aspx?Car_ID={0}",Eval("Car_ID"))%>' />
                                    </ItemTemplate>
                                </asp:TemplateField>

                            </Columns>
                            </asp:GridView>


Here is my .CS file
C#
protected void grdCarSearch_PageIndexChanging(object sender, GridViewPageEventArgs e)
   {
      
       grdCarSearch.EditIndex = -1;
       grdCarSearch.PageIndex = e.NewPageIndex;
       grdCarSearch.DataBind();
       bindGrid();

   }

C#
public void bindGrid()
    {
        try
        {
            DataTable dt = new DataTable();
            dt = _BusinessLayer.getSingleRecord(getQuery());
            grdCarSearch.DataSource = dt;
            grdCarSearch.DataBind();

            if (dt.Rows.Count == 0)
            {
                lblgrdempt.Visible = true;
            }
        }
        catch (Exception ex)
        {

        }
    }


C#
protected void Page_Load(object sender, EventArgs e)
   {
       try
       {
           Response.Cache.SetCacheability(HttpCacheability.NoCache);
           Dealer_Id = Request.QueryString["Dealer_Id"].ToString();

           // retrive value of session
           DealerId = Convert.ToString(Session["DealerId"]);
           StateId = Convert.ToString(Session["StateId"]);
           DriveTrain = Convert.ToString(Session["DriveTrain"]);
           Mileage = Convert.ToString(Session["Mileage"]);
           PriceFrom = Convert.ToString(Session["PriceFrom"]);
           PriceTo = Convert.ToString(Session["PriceTo"]);

           // retrive car class
           CarSaloonClass = (ArrayList)Session["CarSaloonClass"];
           CarCoupeClass = (ArrayList)Session["CarCoupeClass"];
           CarCabrioletClass = (ArrayList)Session["CarCabrioletClass"];
           CarOffRoaderClass = (ArrayList)Session["CarOffRoaderClass"];
           CarTourerClass = (ArrayList)Session["CarTourerClass"];
           CarSpecialityCarsClass = (ArrayList)Session["CarSpecialityCarsClass"];

           // retrive car model
           CarSaloonModel = Convert.ToString(Session["CarSaloonModel"]);
           CarCoupeModel = Convert.ToString(Session["CarCoupeModel"]);
           CarCabrioletModel = Convert.ToString(Session["CarCabrioletModel"]);
           CarOffRoaderModel = Convert.ToString(Session["CarOffRoaderModel"]);
           CarTourerModel = Convert.ToString(Session["CarTourerModel"]);
           CarSpecialityCarsModel = Convert.ToString(Session["CarSpecialityCarsModel"]);
       }
       catch (Exception ex)
       {

       }
       if (!IsPostBack)
       {
           bindGrid();
       }
   }


private string getQuery()
    {
            string query = null;

            query = "SELECT dbo.Car_Master.Car_ID, dbo.Car_Master.Car_Name, dbo.Car_Master.CarModel_Id, dbo.Car_Master.Car_Type, dbo.Car_Master.Car_Drain, dbo.Dealer_Master.Dealer_Name, dbo.Car_Master.Car_RegistrationDate, dbo.Car_Master.Mileage_Id, dbo.Car_Master.Car_Colour, dbo.Car_Master.Car_Trim, dbo.Car_Master.Car_Price, dbo.Car_Master.Transmission, dbo.Car_Master.Car_EngineSize, dbo.Car_Master.Car_StylingLine, dbo.Car_Master.Car_DealerID, dbo.Car_Master.car_SaleStatus, dbo.Car_Master.Car_LastUpdated, dbo.CarModel_master.Car_Model, dbo.CarClass_Master.Class_ID, dbo.CarClass_Master.Class_Type, dbo.Dealer_Master.Dealer_State, dbo.State_Master.State_ID, dbo.State_Master.State_Name FROM dbo.Car_Master INNER JOIN dbo.CarModel_master ON dbo.Car_Master.CarModel_Id = dbo.CarModel_master.CarModel_Id INNER JOIN dbo.CarClass_Master ON dbo.Car_Master.Car_Type = dbo.CarClass_Master.Class_ID INNER JOIN dbo.Dealer_Master ON dbo.Car_Master.Car_DealerID = dbo.Dealer_Master.Dealer_ID INNER JOIN dbo.State_Master ON dbo.Dealer_Master.Dealer_State = dbo.State_Master.State_ID WHERE (dbo.Car_Master.car_SaleStatus <> 'Sold')";

            // where query for Dealer drop down
            if (DealerId == "0")
            {
                query = query + "";
            }
            else if (DealerId != "0")
            {
                query = query + " and dbo.Car_Master.Car_DealerID= '" + DealerId + "'";
            }

            // where query for state drop down
            if (StateId != "Select")
            {
                query = query + " and dbo.State_Master.State_ID= '" + StateId + "'";
            }            

            // where query for Drive drop down
            if (DriveTrain != "-Select-")
            {
                query = query + " and dbo.Car_Master.Car_Drain= '" + DriveTrain + "'";
            }

            // where query for Mileage drop down
            if (Mileage != "-Any-")
            {
                string symbol = Mileage.Substring(0, 1);
                string digit = Mileage.Substring(1, Mileage.Length - 1);
                string digitonly = digit.Replace(",", "");

                if (symbol == ">")
                {
                    query = query + " and dbo.Car_Master.Mileage_Id > '" + digitonly + "'";
                }

                else if (symbol == "<")
                {
                    query = query + " and dbo.Car_Master.Mileage_Id < '" + digitonly + "'";
                }
            }

            // where query for prize drop down
            if (PriceFrom != "Any" && PriceTo == "Any")
            {
                string exactprice = PriceFrom.Substring(3, PriceFrom.Length - 3);
                string exactDigitOnly = exactprice.Replace(",", "");

                query = query + " and dbo.Car_Master.Car_Price <= '" + exactDigitOnly + "'";
            }

            else if (PriceTo != "Any" && PriceFrom == "Any")
            {
                string exactprice = PriceTo.Substring(3, PriceTo.Length - 3);
                string exactDigitOnly = exactprice.Replace(",", "");

                query = query + " and dbo.Car_Master.Car_Price >= '" + exactDigitOnly + "'";
            }

            else if (PriceFrom != "Any" && PriceTo != "Any")
            {
                string exactpriceFrom = PriceFrom.Substring(3, PriceFrom.Length - 3);
                string exactDigitOnlyFrom = exactpriceFrom.Replace(",", "");

                string exactpriceTo = PriceTo.Substring(3, PriceTo.Length - 3);
                string exactDigitOnlyTo = exactpriceTo.Replace(",", "");

                query = query + "and dbo.Car_Master.Car_Price between '" + exactDigitOnlyFrom + "' and '" + exactDigitOnlyTo + "'";
            }

            // where query for checkbox and get car class and car model for saloon
            if (CarSaloonModel != "")
            {
                int flag = 0;

                DataTable dtCarSaloonClass = new DataTable();
                DataTable dtCarSaloonModel = new DataTable();

                dtCarSaloonModel = _BusinessLayer.getSingleRecord("select * from CarModel_master where Car_Model ='" + CarSaloonModel + "'");
                int CarSaloonModelID = Convert.ToInt32(dtCarSaloonModel.Rows[0]["CarModel_Id"]);

                foreach (string SaloonClass in CarSaloonClass)
                {
                    dtCarSaloonClass = _BusinessLayer.getSingleRecord("select * from CarClass_Master where Class_Type='" + SaloonClass + "'");
                    int CarSaloonClassID = Convert.ToInt32(dtCarSaloonClass.Rows[0]["Class_ID"]);

                    if (flag == 0)
                    {
                        query = query + " and dbo.Car_Master.Car_Type = '" + CarSaloonClassID + "' and dbo.Car_Master.CarModel_Id = '" + CarSaloonModelID + "'";
                    }

                    if (flag == 1)
                    {
                        query = query + " or dbo.Car_Master.Car_Type = '" + CarSaloonClassID + "' and dbo.Car_Master.CarModel_Id = '" + CarSaloonModelID + "'";
                    }

                    flag = 1;
                }
            }

            // where query for checkbox and get car class and car model for Coupe
            if (CarCoupeModel != "")
            {
                int flag = 0;

                DataTable dtCarCoupeClass = new DataTable();
                DataTable dtCarCoupeModel = new DataTable();

                dtCarCoupeModel = _BusinessLayer.getSingleRecord("select * from CarModel_master where Car_Model ='" + CarCoupeModel + "'");
                int CarCoupeModelID = Convert.ToInt32(dtCarCoupeModel.Rows[0]["CarModel_Id"]);

                foreach (string CoupeClass in CarCoupeClass)
                {
                    dtCarCoupeClass = _BusinessLayer.getSingleRecord("select * from CarClass_Master where Class_Type='" + CoupeClass + "'");
                    int CarCoupeClassID = Convert.ToInt32(dtCarCoupeClass.Rows[0]["Class_ID"]);

                    if (CarSaloonModel != "")
                        query = query + " or dbo.Car_Master.Car_Type = '" + CarCoupeClassID + "' and dbo.Car_Master.CarModel_Id = '" + CarCoupeModelID + "'";

                    if (CarSaloonModel == "")
                    {
                        if (flag == 0)
                        {
                            query = query + " and dbo.Car_Master.Car_Type = '" + CarCoupeClassID + "' and dbo.Car_Master.CarModel_Id = '" + CarCoupeModelID + "'";
                        }

                        if (flag == 1)
                        {
                            query = query + " or dbo.Car_Master.Car_Type = '" + CarCoupeClassID + "' and dbo.Car_Master.CarModel_Id = '" + CarCoupeModelID + "'";
                        }
                    }

                    flag = 1;
                }
            }

            // where query for checkbox and get car class and car model for Cabriolet
            if (CarCabrioletModel != "")
            {
                int flag = 0;

                DataTable dtCarCabrioletClass = new DataTable();
                DataTable dtCarCabrioletModel = new DataTable();

                dtCarCabrioletModel = _BusinessLayer.getSingleRecord("select * from CarModel_master where Car_Model ='" + CarCabrioletModel + "'");
                int CarCabrioletModelID = Convert.ToInt32(dtCarCabrioletModel.Rows[0]["CarModel_Id"]);

                foreach (string CabrioletClass in CarCabrioletClass)
                {

                    dtCarCabrioletClass = _BusinessLayer.getSingleRecord("select * from CarClass_Master where Class_Type='" + CabrioletClass + "'");
                    int CarCabrioletClassID = Convert.ToInt32(dtCarCabrioletClass.Rows[0]["Class_ID"]);

                    if (CarSaloonModel != "" || CarCoupeModel != "")
                        query = query + " or dbo.Car_Master.Car_Type = '" + CarCabrioletClassID + "' and dbo.Car_Master.CarModel_Id = '" + CarCabrioletModelID + "'";

                    if (CarSaloonModel == "" && CarCoupeModel == "")
                    {
                        if (flag == 0)
                        {
                            query = query + " and dbo.Car_Master.Car_Type = '" + CarCabrioletClassID + "' and dbo.Car_Master.CarModel_Id = '" + CarCabrioletModelID + "'";
                        }

                        if (flag == 1)
                        {
                            query = query + " or dbo.Car_Master.Car_Type = '" + CarCabrioletClassID + "' and dbo.Car_Master.CarModel_Id = '" + CarCabrioletModelID + "'";
                        }
                    }
                    flag = 1;
                }
            }

            // where query for checkbox and get car class and car model for OffRoader
            if (CarOffRoaderModel != "")
            {
                int flag = 0;

                DataTable dtCarOffRoaderClass = new DataTable();
                DataTable dtCarOffRoaderModel = new DataTable();

                dtCarOffRoaderModel = _BusinessLayer.getSingleRecord("select * from CarModel_master where Car_Model ='" + CarOffRoaderModel + "'");
                int CarOffRoaderModelID = Convert.ToInt32(dtCarOffRoaderModel.Rows[0]["CarModel_Id"]);

                foreach (string OffRoader in CarOffRoaderClass)
                {
                    dtCarOffRoaderClass = _BusinessLayer.getSingleRecord("select * from CarClass_Master where Class_Type='" + OffRoader + "'");
                    int CarOffRoaderClassID = Convert.ToInt32(dtCarOffRoaderClass.Rows[0]["Class_ID"]);

                    if (CarSaloonModel != "" || CarCoupeModel != "" || CarCabrioletModel != "")
                        query = query + " or dbo.Car_Master.Car_Type = '" + CarOffRoaderClassID + "' and dbo.Car_Master.CarModel_Id = '" + CarOffRoaderModelID + "'";

                    if (CarSaloonModel == "" && CarCoupeModel == "" && CarCabrioletModel == "")
                    {
                        if (flag == 0)
                        {
                            query = query + " and dbo.Car_Master.Car_Type = '" + CarOffRoaderClassID + "' and dbo.Car_Master.CarModel_Id = '" + CarOffRoaderModelID + "'";
                        }

                        if (flag == 1)
                        {
                            query = query + " or dbo.Car_Master.Car_Type = '" + CarOffRoaderClassID + "' and dbo.Car_Master.CarModel_Id = '" + CarOffRoaderModelID + "'";
                        }
                    }

                    flag = 1;
                }
            }

            // where query for checkbox and get car class and car model for Tourer
            if (CarTourerModel != "")
            {
                int flag = 0;

                DataTable dtCarTourerClass = new DataTable();
                DataTable dtCarTourerModel = new DataTable();

                dtCarTourerModel = _BusinessLayer.getSingleRecord("select * from CarModel_master where Car_Model ='" + CarTourerModel + "'");
                int CarTourerModelID = Convert.ToInt32(dtCarTourerModel.Rows[0]["CarModel_Id"]);

                foreach (string TourerClass in CarTourerClass)
                {
                    dtCarTourerClass = _BusinessLayer.getSingleRecord("select * from CarClass_Master where Class_Type='" + TourerClass + "'");
                    int CarTourerClassID = Convert.ToInt32(dtCarTourerClass.Rows[0]["Class_ID"]);

                    if (CarSaloonModel != "" || CarCoupeModel != "" || CarCabrioletModel != "" || CarOffRoaderModel != "")
                        query = query + " or dbo.Car_Master.Car_Type = '" + CarTourerClassID + "' and dbo.Car_Master.CarModel_Id = '" + CarTourerModelID + "'";

                    if (CarSaloonModel == "" && CarCoupeModel == "" && CarCabrioletModel == "" && CarOffRoaderModel == "")
                    {
                        if (flag == 0)
                        {
                            query = query + " and dbo.Car_Master.Car_Type = '" + CarTourerClassID + "' and dbo.Car_Master.CarModel_Id = '" + CarTourerModelID + "'";
                        }

                        if (flag == 1)
                        {
                            query = query + " or dbo.Car_Master.Car_Type = '" + CarTourerClassID + "' and dbo.Car_Master.CarModel_Id = '" + CarTourerModelID + "'";
                        }
                    }

                    flag = 1;
                }
            }

            // where query for checkbox and get car class and car model for SpecialityCars
            if (CarSpecialityCarsModel != "")
            {
                int flag = 0;

                DataTable dtCarSpecialityCarsClass = new DataTable();
                DataTable dtCarSpecialityCarsModel = new DataTable();

                dtCarSpecialityCarsModel = _BusinessLayer.getSingleRecord("select * from CarModel_master where Car_Model ='" + CarSpecialityCarsModel + "'");
                int CarSpecialityCarsModelID = Convert.ToInt32(dtCarSpecialityCarsModel.Rows[0]["CarModel_Id"]);

                foreach (string SpecialityCar in CarSpecialityCarsClass)
                {
                    dtCarSpecialityCarsClass = _BusinessLayer.getSingleRecord("select * from CarClass_Master where Class_Type='" + SpecialityCar + "'");
                    int CarSpecialityCarsClassID = Convert.ToInt32(dtCarSpecialityCarsClass.Rows[0]["Class_ID"]);

                    if (CarSaloonModel != "" || CarCoupeModel != "" || CarCabrioletModel != "" || CarOffRoaderModel != "" || CarTourerModel != "")
                        query = query + " or dbo.Car_Master.Car_Type = '" + CarSpecialityCarsClassID + "' and dbo.Car_Master.CarModel_Id = '" + CarSpecialityCarsModelID + "'";

                    if (CarSaloonModel == "" && CarCoupeModel == "" && CarCabrioletModel == "" && CarOffRoaderModel == "" && CarTourerModel == "")
                    {
                        if (flag == 0)
                        {
                            query = query + " and dbo.Car_Master.Car_Type = '" + CarSpecialityCarsClassID + "' and dbo.Car_Master.CarModel_Id = '" + CarSpecialityCarsModelID + "'";
                        }

                        if (flag == 1)
                        {
                            query = query + " or dbo.Car_Master.Car_Type = '" + CarSpecialityCarsClassID + "' and dbo.Car_Master.CarModel_Id = '" + CarSpecialityCarsModelID + "'";
                        }
                    }

                    flag = 1;
                }
            }          
       
        return query;

    }//get query function closed here
Posted
Comments
Ankur\m/ 28-Jan-13 9:14am    
you call that short? :omg:
ubaidh sayed 28-Jan-13 9:20am    
Code is not short :)
Joezer BH 29-Jan-13 7:07am    
:laugh:
Vyacheslav Voronenko 28-Jan-13 9:23am    
Give us link to deployed app :)

1 solution

Probably the Session is getting expired. I modified my Bind Gird Method to
C#
public void bindGrid(bool isPageIndexChanged)
    {
        try
        {
            DataTable dt = new DataTable();
            if (!isPageIndexChanged)
            {

                dt = _BusinessLayer.getSingleRecord(getQuery());
                Session["FetchedData"] = dt;
            }
            else
            {
                dt=(DataTable)Session["FetchedData"];
            }
            grdCarSearch.DataSource = dt;
            if(Convert.ToString( Session["PageSize"]) !=null)
                grdCarSearch.PageIndex = Convert.ToInt32(Session["PageSize"]);
            grdCarSearch.DataBind();

            if (dt.Rows.Count == 0)
            {
                lblgrdempt.Visible = true;
            }
        }
        catch (Exception ex)
        {

        }
    }


This is how i call it from the paging event
C#
protected void grdCarSearch_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {

        grdCarSearch.EditIndex = -1;
       // grdCarSearch.PageIndex = e.NewPageIndex;
        grdCarSearch.DataBind();
        Session["PageSize"] = e.NewPageIndex;
        //grdCarSearch.pa
        bindGrid(true);
    }
 
Share this answer
 

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



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900