Hi Shud,
Check this example. Now please take its reference and correct your code.
Model
public class DoctorSchedule
{
public string DoctorID { get; set; }
public string DoctorName { get; set; }
public List<DayDetails> Details { get; set; }
}
public class DayDetails
{
public string DayName { get; set; }
public string StartTime { get; set; }
public string EndTime { get; set; }
public int Room { get; set; }
}
Namespaces
using System.Data;
Controller
public class HomeController : Controller
{
// GET: /Home/
public ActionResult Index()
{
// Get records from Database.
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[] {
new DataColumn("nvc_Doctor_ID", typeof(string)),
new DataColumn("nvc_Doctor_Name", typeof(string)),
new DataColumn("nvc_Day_Name",typeof(string)),
new DataColumn("nvc_Start_Time",typeof(string)),
new DataColumn("nvc_End_Time",typeof(string)),
new DataColumn("nvc_Room_Number",typeof(int)) });
dt.Rows.Add("doc1", "doc name", "Monday", "12:30", "2:30", 12);
dt.Rows.Add("doc1", "doc name", "Tuesday", "12:30", "2:30", 13);
dt.Rows.Add("doc1", "doc name", "Wednesday", "12:30", "2:30", 14);
dt.Rows.Add("doc1", "doc name", "Thursday", "12:30", "2:30", 15);
dt.Rows.Add("doc1", "doc name", "Friday", "12:30", "2:30", 12);
dt.Rows.Add("doc1", "doc name", "Saturday", "11:30", "2:30", 12);
dt.Rows.Add("doc1", "doc name", "Sunday", "", "", 0);
dt.Rows.Add("doc2", "doc raj", "Monday", "2:30", "4:30", 12);
dt.Rows.Add("doc2", "doc raj", "Tuesday", "2:30", "4:30", 21);
dt.Rows.Add("doc2", "doc raj", "Wednesday", "2:30", "4:30", 23);
dt.Rows.Add("doc2", "doc raj", "Thursday", "2:30", "4:30", 0);
dt.Rows.Add("doc2", "doc raj", "Friday", "2:30", "4:30", 24);
dt.Rows.Add("doc2", "doc raj", "Saturday", "2:30", "4:30", 42);
dt.Rows.Add("doc2", "doc raj", "Sunday", "", "", 0);
List<DoctorSchedule> schedule = new List<DoctorSchedule>();
DataView view = new DataView(dt);
DataTable distinctValues = view.ToTable(true, "nvc_Doctor_ID", "nvc_Doctor_Name");
foreach (DataRow dr in distinctValues.Rows)
{
DoctorSchedule doctor = new DoctorSchedule();
doctor.DoctorID = dr["nvc_Doctor_ID"].ToString();
doctor.DoctorName = dr["nvc_Doctor_Name"].ToString();
DataRow[] drs = dt.Select("nvc_Doctor_ID='" + doctor.DoctorID + "'");
List<DayDetails> dayDetails = new List<DayDetails>();
foreach (DataRow item in drs)
{
DayDetails dayDetail = new DayDetails();
dayDetail.DayName = item["nvc_Day_Name"].ToString();
dayDetail.StartTime = item["nvc_Start_Time"].ToString();
dayDetail.EndTime = item["nvc_End_Time"].ToString();
dayDetail.Room = Convert.ToInt32(item["nvc_Room_Number"]);
dayDetails.Add(dayDetail);
}
doctor.Details = dayDetails;
schedule.Add(doctor);
}
TempData["Schedule"] = schedule;
return View();
}
}
View
<table id="doctorSchedulingTable" class="table table-striped table-bordered table-hover">
<thead style="border-right: 2px solid #ddd">
<tr>
<th>Doctor</th>
<th colspan="7">Schedules</th>
</tr>
</thead>
<tbody>
<%foreach (var doctor in (List<DoctorSchedule>)TempData["Schedule"])
{%>
<tr style="height: 30px">
<td>
<img src="../../doc.jpg" id="avatar" class="editable img-responsive" height="80"
width="80" alt="../../doc.jpg" />
<span><b>Doctor ID:</b> <%:doctor.DoctorID%></span><hr />
<span><b>Name:</b> <%:doctor.DoctorName%></span>
</td>
<%foreach (DayDetails dayDetails in doctor.Details)
{%>
<td align="center" style="width: 10%">
<span><b><%:dayDetails.DayName%></b></span><hr />
<span><%:dayDetails.StartTime%></span><span> - </span>
<span><%:dayDetails.EndTime%></span><hr />
<span><b>Room No.:</b> </span><span><%:dayDetails.Room%></span><hr />
<button type="submit" id="btnsave" class="btn btn-primary">Get Appointment</button>
</td>
<%} %>
</tr>
<%} %>
</tbody>
</table>
Screenshot