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.
<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 width="90%" cellspacing="1" cellpadding="1" border="0">
<tr>
<td bgcolor="#ffffff" >
<table width="90%" cellspacing="0" cellpadding="0" border="0">
<tr>
<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> </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>
<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>
</tr>
</table>
</td>
</tr>
</table>
</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
protected void grdCarSearch_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
grdCarSearch.EditIndex = -1;
grdCarSearch.PageIndex = e.NewPageIndex;
grdCarSearch.DataBind();
bindGrid();
}
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)
{
}
}
protected void Page_Load(object sender, EventArgs e)
{
try
{
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Dealer_Id = Request.QueryString["Dealer_Id"].ToString();
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"]);
CarSaloonClass = (ArrayList)Session["CarSaloonClass"];
CarCoupeClass = (ArrayList)Session["CarCoupeClass"];
CarCabrioletClass = (ArrayList)Session["CarCabrioletClass"];
CarOffRoaderClass = (ArrayList)Session["CarOffRoaderClass"];
CarTourerClass = (ArrayList)Session["CarTourerClass"];
CarSpecialityCarsClass = (ArrayList)Session["CarSpecialityCarsClass"];
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')";
if (DealerId == "0")
{
query = query + "";
}
else if (DealerId != "0")
{
query = query + " and dbo.Car_Master.Car_DealerID= '" + DealerId + "'";
}
if (StateId != "Select")
{
query = query + " and dbo.State_Master.State_ID= '" + StateId + "'";
}
if (DriveTrain != "-Select-")
{
query = query + " and dbo.Car_Master.Car_Drain= '" + DriveTrain + "'";
}
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 + "'";
}
}
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 + "'";
}
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;
}
}
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;
}
}
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;
}
}
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;
}
}
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;
}
}
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;
}