protected
void
Page_Load(
object
sender, EventArgs e)
{
if
(!IsPostBack)
{
DataTable dt =
new
DataTable();
dt.Columns.AddRange(
new
DataColumn[] {
new
DataColumn(
"District"
)
,
new
DataColumn(
"Year"
)
,
new
DataColumn(
"Total Works"
)
,
new
DataColumn(
"Completed"
)
});
dt.Rows.Add(
"Delhi"
,
"2013-14"
,
"72"
,
"72"
);
dt.Rows.Add(
"Bihar"
,
"2013-14"
,
"57"
,
"57"
);
dt.Rows.Add(
"UP"
,
"2013-14"
,
"200"
,
"200"
);
dt.Rows.Add(
"Andhra Pradesh"
,
"2013-14"
,
"100"
,
"100"
);
dt.Rows.Add(
"Chandigarh"
,
"2013-14"
,
"82"
,
"77"
);
dt.Rows.Add(
"Goa"
,
"2013-14"
,
"81"
,
"81"
);
dt.Rows.Add(
"Gujrat"
,
"2014-15"
,
"225"
,
"218"
);
dt.Rows.Add(
"Haryana"
,
"2014-15"
,
"162"
,
"156"
);
dt.Rows.Add(
"Kerala"
,
"2014-15"
,
"573"
,
"485"
);
dt.Rows.Add(
"Maharashtra"
,
"2014-15"
,
"261"
,
"249"
);
dt.Rows.Add(
"Ranchi"
,
"2014-15"
,
"173"
,
"107"
);
dt.Rows.Add(
"Tripura"
,
"2014-15"
,
"248"
,
"201"
);
gvData.DataSource = dt;
gvData.DataBind();
}
}
string
currentYear =
string
.Empty;
int
subTotal = 0;
int
total = 0;
int
subTotalRowIndex = 0;
protected
void
OnRowCreated(
object
sender, GridViewRowEventArgs e)
{
subTotal = 0;
if
(e.Row.RowType == DataControlRowType.DataRow)
{
DataTable dt = (e.Row.DataItem
as
DataRowView).DataView.Table;
string
year = dt.Rows[e.Row.RowIndex][
"year"
].ToString();
total += Convert.ToInt32(dt.Rows[e.Row.RowIndex][
"Total Works"
]);
if
(year != currentYear)
{
if
(e.Row.RowIndex > 0)
{
for
(
int
i = subTotalRowIndex; i < e.Row.RowIndex; i++)
{
subTotal += Convert.ToInt32(gvData.Rows[i].Cells[2].Text);
}
this
.AddTotalRow(
"Sub Total"
, subTotal.ToString(
"N2"
));
subTotalRowIndex = e.Row.RowIndex;
}
currentYear = year;
}
}
}
private
void
AddTotalRow(
string
labelText,
string
value)
{
GridViewRow row =
new
GridViewRow(0, 0, DataControlRowType.DataRow,
DataControlRowState.Normal);
row.BackColor = ColorTranslator.FromHtml(
"#F9F9F9"
);
row.Cells.AddRange(
new
TableCell[3] {
new
TableCell (),
new
TableCell { Text = labelText, HorizontalAlign = HorizontalAlign.Right},
new
TableCell { Text = value, HorizontalAlign = HorizontalAlign.Right } });
gvData.Controls[0].Controls.Add(row);
}
protected
void
OnDataBound(
object
sender, EventArgs e)
{
for
(
int
i = subTotalRowIndex; i < gvData.Rows.Count; i++)
{
subTotal += Convert.ToInt32(gvData.Rows[i].Cells[2].Text);
}
this
.AddTotalRow(
"Sub Total"
, subTotal.ToString(
"N2"
));
this
.AddTotalRow(
"Total"
, total.ToString(
"N2"
));
}
No comments:
Post a Comment