Click here to Skip to main content
15,893,663 members

Comments by Malikdanish (Top 159 by date)

Malikdanish 7-Jan-20 1:34am View    
here is the result i am getting
https://imgur.com/5O4J7vc
here is the result i want to get I want one teacher's all courses on same row
Malikdanish 7-Jan-20 1:31am View    
Here is my index controller code :
public ActionResult Index(string sortOrder, string currentFilter, string SearchString, int? page)
{


ViewBag.Course_Id = _ITeacherCoruses.PopulateCourses();
ViewBag.Teacher_Id = _ITeacherCoruses.PopulateTeachers();
ViewBag.Semester_Id = _ITeacherCoruses.PopulateSemsters();
// ViewBag.Teacher_Id = new SelectList(db.Registration, "User_Id", "FirstName");
ViewBag.CurrentSort = sortOrder;
ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
ViewBag.DateSortParm = sortOrder == "Date" ? "date_desc" : "Date";
if (SearchString != null)
{
page = 1;
}
else
{
SearchString = currentFilter;
}

ViewBag.CurrentFilter = SearchString;


var dept = from s in db.Teacher_courses
select s;



dept =dept.Include(t => t.course).Include(t => t.regs).Include(t => t.semesterName).OrderBy(t => t.Teacher_Id);
if (!String.IsNullOrEmpty(SearchString))
{
dept = dept.Where(s => s.course.Course_Name.Contains(SearchString));
// || s.FirstMidName.Contains(searchString));
}
switch (sortOrder)
{
case "name_desc":
dept = dept.OrderByDescending(s => s.course.Course_Name);
break;
case "Date":
dept = dept.OrderBy(s => s.Course_Assignment_date);
break;
case "date_desc":
dept = dept.OrderByDescending(s => s.Course_Assignment_date);
break;
default:
dept = dept.OrderBy(s => s.course.Course_Name);
break;
}
int pageSize = 5;
int pageNumber = (page ?? 1);


// var teacher_courses = db.Teacher_courses.Include(t => t.course).Include(t => t.regs).Include(t => t.semesterName).OrderBy(t=>t.Teacher_Id);
dept = dept.Include(t => t.course).Include(t => t.regs).Include(t => t.semesterName).OrderBy(t => t.Teacher_Id);
//return View(groupedUsers);
return View(productsArray.ToPagedList(pageNumber, pageSize));
// return View(teacher_courses.ToList());
}
----
Here is my index view :
@*@model IEnumerable<cms_monitoring.models.teacher_courses>*@
@using PagedList;
@using PagedList.Mvc;
@using CMS_Monitoring.Helpers;
@model PagedList.IPagedList<cms_monitoring.models.teacher_courses>
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout2.cshtml";
}

Index





setTimeout(function () {
$('#successMessage').fadeOut('slow');
}, 12000); // <-- time i


@Html.ActionLink("Create New", "Create", "Departments", new { @class = "btn btn-info" })


@if (TempData["UpdatedMessage"] != null)
{
@TempData["UpdatedMessage"]
}

@Html.ActionLink("Create New", "Create")

@using (Html.BeginForm())
{




Find by Department name: @Html.TextBox("SearchString")



if (TempData["DeleteDepartment"] != null)
{
@TempData["DeleteDepartment"]
}

@foreach (var item in Model)
{
}

@Html.DisplayNameFor(model => model[0].course.Course_Name)
@Html.DisplayNameFor(model => model[0].regs.FirstName)
@Html.DisplayNameFor(model => model[0].semesterName.Semester_Title)
@Html.D
Malikdanish 7-Jan-20 0:41am View    
By sql i have done it using STuff function I want to do it with entity framework only using Linq , no matter either to make it from controller or from view i do not want to call the stored procedure i am using Entity framework using linq
Malikdanish 7-Jan-20 0:34am View    
Hi i have changed my view code to group the data there
@foreach (var item in Model)
{
@foreach(var group in Model.GroupBy(model=> model.regs.FirstName))
{
@Html.Encode(group.Key)
@foreach(var tm in group)
{
@Html.Encode(tm.course.Course_Name)}

}
@*@Html.DisplayFor(modelItem => item.course.Course_Name)*@
but check it's out put is wrong i am not sure why , it is showing five courses for ALAM but in db there are 4 rows for this user,secondly the grouping is still repeating the number of rows which is wrong
https://imgur.com/33BJUjA
Malikdanish 6-Jan-20 23:41pm View    
I just want to ask how do i send this data to view ?