My problem is ,i have one repeater control.In that the data is binding at BtnGo click.
In that if there are two same vehicle no but they service payments are different ,so after completing the data binding for a partcular vehicle no the total of the payments shud be displayed as a new row named Total.This has to be done for every vehicle.
To get this functionality i used OnItem created event ,and after it was working fine.But Now the problem is this ,that theer is also an option for export to excel.When i use that button,after completing the rendering of the control it only shows the first row and all other values null.
The code i m giving below what i have used:
protected void Content_ItemCreated(object sender, RepeaterItemEventArgs e)
{
string vehicleNo = Convert.ToString(DataBinder.Eval(e.Item.DataItem, "Vehicle No"));
if (e.Item.ItemIndex > 0 && DataVehicleNumber != vehicleNo && (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem))
{
e.Item.Controls.Clear();
TableRow tr = new TableRow();
TableCell tc = new TableCell();
TableCell tc1 = new TableCell();
TableCell tc2 = new TableCell();
TableCell tc3 = new TableCell();
TableCell tc4 = new TableCell();
TableCell tc5 = new TableCell();
TableCell tc6 = new TableCell();
TableCell tc7 = new TableCell();
Label lblnew = new Label();
tc.Controls.Add(lblnew);
lblnew.Text = "<b>Total : </b>" + String.Format("{0:N}",Total);
tc1.Text = " ";
tc2.Text = " ";
tc3.Text = " ";
tc4.Text = " ";
tc5.Text = " ";
tc6.Text = " ";
tc7.Text = " ";
tr.Cells.Add(tc1);
tr.Cells[0].CssClass = "datavalue";
tr.Cells.Add(tc2);
tr.Cells[1].CssClass = "datavalue";
tr.Cells.Add(tc3);
tr.Cells[2].CssClass = "datavalue";
tr.Cells.Add(tc4);
tr.Cells[3].CssClass = "datavalue";
tr.Cells.Add(tc5);
tr.Cells[4].CssClass = "datavalue";
tr.Cells.Add(tc6);
tr.Cells[5].CssClass = "datavalue";
tr.Cells.Add(tc);
tr.Cells[6].CssClass = "datavalue";
tr.Cells[6].Attributes.Add("align", "right");
tr.Cells.Add(tc7);
tr.Cells[7].Attributes.Add("bgcolor", "#D8EFFD");
tr.Cells[7].CssClass = "datavalue";
e.Item.Controls.Add(tr);
TableRow Otr = new TableRow();
TableCell Otc0 = new TableCell();
TableCell Otc1 = new TableCell();
TableCell Otc2 = new TableCell();
TableCell Otc3 = new TableCell();
TableCell Otc4 = new TableCell();
TableCell Otc5 = new TableCell();
TableCell Otc6 = new TableCell();
TableCell Otc7 = new TableCell();
Label lblSlno = new Label();
lblSlno.ID = "lblid";
Otc0.Controls.Add(lblSlno);
Otc0.CssClass = "datavalue";
Otr.Cells.Add(Otc0);
Otc1.Text = Convert.ToString(DataBinder.Eval(e.Item.DataItem, "Vehicle No"));
Otc1.CssClass = "datavalue";
Otr.Cells.Add(Otc1);
Otc2.Text = Convert.ToString(DataBinder.Eval(e.Item.DataItem, "Service Type"));
Otc2.CssClass = "datavalue";
Otr.Cells.Add(Otc2);
Otc3.Text = Convert.ToString(DataBinder.Eval(e.Item.DataItem, "Odometer"));
Otc3.CssClass = "datavalue";
Otr.Cells.Add(Otc3);
Otc4.Text = Convert.ToString(DataBinder.Eval(e.Item.DataItem, "Bill No"));
Otc4.CssClass = "datavalue";
Otr.Cells.Add(Otc4);
Otc5.Text = Convert.ToDateTime(DataBinder.Eval(e.Item.DataItem , "Bill Date")).ToString("dd/MM/yyyy");
Otc5.CssClass = "datavalue";
Otr.Cells.Add(Otc5);
Otc6.Text = String.Format("{0:N}",DataBinder.Eval(e.Item.DataI tem, "Amount"));
Otc6.CssClass = "datavalue";
Otc6.Attributes.Add("align", "right");
Otr.Cells.Add(Otc6);
Otc7.Text = " ";
Otc7.CssClass = "datavalue";
Otc7.Attributes.Add("bgcolor", "#D8EFFD");
Otr.Cells.Add(Otc7);
e.Item.Controls.Add(Otr);
}
if (e.Item.ItemType == ListItemType.Footer)
{
e.Item.Controls.Clear();
TableRow tr = new TableRow();
TableCell tc = new TableCell();
TableCell tc1 = new TableCell();
TableCell tc2 = new TableCell();
TableCell tc3 = new TableCell();
TableCell tc4 = new TableCell();
TableCell tc5 = new TableCell();
TableCell tc6 = new TableCell();
TableCell tc7 = new TableCell();
Label lblnew = new Label();
tc.Controls.Add(lblnew);
lblnew.Text = "<b>Total : </b>" + String.Format("{0:N}",Total);
tc1.Text = " ";
tc2.Text = " ";
tc3.Text = " ";
tc4.Text = " ";
tc5.Text = " ";
tc6.Text = " ";
tc7.Text = " ";
tr.Cells.Add(tc1);
tr.Cells[0].CssClass = "datavalue";
tr.Cells.Add(tc2);
tr.Cells[1].CssClass = "datavalue";
tr.Cells.Add(tc3);
tr.Cells[2].CssClass = "datavalue";
tr.Cells.Add(tc4);
tr.Cells[3].CssClass = "datavalue";
tr.Cells.Add(tc5);
tr.Cells[4].CssClass = "datavalue";
tr.Cells.Add(tc6);
tr.Cells[5].CssClass = "datavalue";
tr.Cells.Add(tc);
tr.Cells[6].CssClass = "datavalue";
tr.Cells[6].Attributes.Add("align", "right");
tr.Cells.Add(tc7);
tr.Cells[7].Attributes.Add("bgcolor", "#D8EFFD");
tr.Cells[7].CssClass = "datavalue";
e.Item.Controls.Add(tr);
}
}
protected void Content_OnItemDataBound(object sender, RepeaterItemEventArgs e)
{
//double totamount;
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
if ((Label)e.Item.FindControl("lblid") != null)
((Label)e.Item.FindControl("lblid")).Text = (e.Item.ItemIndex + 1).ToString();
if (DataVehicleNumber == DataBinder.Eval(e.Item.DataItem, "Vehicle No").ToString())
{
if (((Label)e.Item.FindControl("lblVehicleNumber")) != null)
((Label)e.Item.FindControl("lblVehicleNumber")).Te xt = " ";
Total += Convert.ToDouble(DataBinder.Eval(e.Item.DataItem, "Amount"));
//((Label)e.Item.FindControl("lblTotal")).Text = "Total :" + Total.ToString();
//((Label)e.Item.FindControl("lblVehicleNumber")).Te xt = " ";
//Total += Convert.ToInt64(DataBinder.Eval(e.Item.DataItem, "Amount"));
//((Label)e.Item.FindControl("lblTotal")).Text = "Total :" + Total.ToString();
}
else
{
Total = 0;
DataVehicleNumber = DataBinder.Eval(e.Item.DataItem, "Vehicle No").ToString();
Total += Convert.ToDouble(DataBinder.Eval(e.Item.DataItem, "Amount"));
// //((Label)e.Item.FindControl("lblTotal")).Text = "Total :" + Total.ToString();
}
}
}
protected void btn_Export_Click(object sender, EventArgs e)
{
Response.Buffer = true;
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("Content-Disposition", "attachment;filename=VehicleWiseExpenses.xls") ;
Response.Charset = "";
this.EnableViewState = true;
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
Content.RenderControl(oHtmlTextWriter);
Response.Write("User : ");
Response.Write(lblUser.Text);
Response.Write(" ");
Response.Write(" ");
Response.Write(" ");
Response.Write("Run Date : ");
Response.Write(lblrundate.Text);
Response.Write(" ");
Response.Write(" ");
Response.Write(" ");
Response.Write("Time : ");
Response.Write(lblTime.Text);
Response.Write("<br>");
Response.Write("Vehicle Number : ");
Response.Write(lblST.Text);
Response.Write("<br>");
Response.Write("Period : ");
Response.Write(lblPeriod.Text);
Response.Write(oStringWriter.ToString());
Response.End();
}
Please help me out its urgent.