Hi,
Below, the code that sorts the table.
private int find_index_column_list(string[,] list, string element)
{
int index_column = 0;
for (int index = 0; index < (list.Length /2); index++)
{
if (list[index, 0] == element)
{
index_column = Convert.ToInt16(list[index, 1]);
return index_column;
}
}
return -1;
}
private void order_table()
{
try
{
DataTable dt = new DataTable();
dt.Columns.Add("Name");
dt.Columns.Add("Id");
dt.Columns.Add("fee_head");
dt.Columns.Add("fee");
DataRow dr = dt.NewRow();
dr["Name"] = "John";
dr["Id"] = "1";
dr["fee_head"] = "EXAM FEE";
dr["fee"] = "1";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["Name"] = "John";
dr["Id"] = "1";
dr["fee_head"] = "STATE OF MARKS";
dr["fee"] = "80";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["Name"] = "Charli";
dr["Id"] = "40";
dr["fee_head"] = "EXAM FEE";
dr["fee"] = "1";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["Name"] = "Charli";
dr["Id"] = "40";
dr["fee_head"] = "STATE OF MARKS";
dr["fee"] = "80";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["Name"] = "Jacky";
dr["Id"] = "2";
dr["fee_head"] = "EXAM FEE";
dr["fee"] = "1";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["Name"] = "Jacky";
dr["Id"] = "2";
dr["fee_head"] = "STATE OF MARKS";
dr["fee"] = "80";
dt.Rows.Add(dr);
DataTable dtpivot = new DataTable();
dtpivot.Columns.Add("Student_Name");
dtpivot.Columns.Add("Student_Id");
dtpivot.Columns.Add("fee_head_1");
dtpivot.Columns.Add("fee_1");
dtpivot.Columns.Add("fee_head_2");
dtpivot.Columns.Add("fee_2");
string[,] list = new string[2, 2];
list[0, 0] = "1";
list[0, 1] = "3";
list[1, 0] = "80";
list[1, 1] = "5";
string student_id = "";
int index_column = 0;
dr = null;
foreach (DataRow drline in dt.Rows )
{
if (student_id != drline["Id"].ToString())
{
if (dr != null) { dtpivot.Rows.Add(dr); }
student_id = drline["Id"].ToString();
dr = dtpivot.NewRow();
dr["Student_Name"] = drline["Name"].ToString();
dr["Student_Id"] = drline["Id"].ToString();
}
index_column = this.find_index_column_list(list, drline["fee"].ToString());
dr[index_column] = drline["fee"].ToString();
dr[(index_column - 1)] = drline["fee_head"].ToString();
}
if (dr != null) { dtpivot.Rows.Add(dr); }
}
catch (Exception ex)
{
}
}