Как применить пейджинг для просмотра данных как модели, в которой нет строго типовой модели, а данные поступают из хранимой процедуры - PullRequest
0 голосов
/ 09 января 2020

Привет, у меня есть веб-приложение в mvc, в котором у меня есть представление, которое получает данные из хранимой процедуры, и я привязал эти данные к датируемым, а затем передал их для просмотра, я хочу сделать подкачку на это у меня есть сделал необходимые изменения, я также установил MVC .PagedList. Ниже приведен код моего контроллера

 public ActionResult TeacherAndCourses(string sortOrder, string currentFilter, string SearchString, int? page)
        {
            if (SearchString != null)
            {
                page = 1;
            }
            else
            {
                SearchString = currentFilter;
            }

            ViewBag.CurrentFilter = SearchString;

            int pageSize = 5;
            int pageNumber = (page ?? 1);
            String constring = "Data Source=ASPKCO-DANISHHB;Initial Catalog=CEMS;Integrated Security=True;";
            string constr = ConfigurationManager.ConnectionStrings["TimesheetDBEntities"].ConnectionString;


            using (SqlConnection conn = new SqlConnection(constr))
            {
                using (SqlCommand cmd = new SqlCommand("GetStudentDetail", conn))
                {
                    conn.Open();
                    cmd.CommandType = CommandType.StoredProcedure;

                    System.Data.DataTable dt = new System.Data.DataTable();
                    DataSet ds = new DataSet();
                    SqlDataAdapter ad = new SqlDataAdapter(cmd);
                    ad.Fill(ds);
                    ad.Fill(dt);

                    conn.Close();
                    ViewData["AllEmpData"] = dt;


                  PagedList<DataRow>  plist = new PagedList<DataRow>(list, page ?? 1, 2);

                    return View(plist);
                }

            }

        }

Код My View ниже

@using (Html.BeginForm())
{
    <table cellpadding="0" cellspacing="0" class="table table-condensed">
        <tr>
            @foreach (DataColumn col in Model.Columns)
            {
               <th  width="500px;">@col.ColumnName  </th>
            }

        </tr>
        @foreach (DataRow row in Model.Rows)
        {
            <tr>
                @foreach (DataColumn col in Model.Columns)
                {
                    <td>@row[col.ColumnName]</td>
                }
            </tr>
        }
    </table>
Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount

    @Html.PagedListPager(Model, page => Url.Action("Index",
        new { page, sortOrder = ViewBag.CurrentSort, currentFilter = ViewBag.CurrentFilter }))

Мое сообщение об ошибке ниже CS1061: «IPagedList» не содержит определения «Columns» и не имеет расширения метод 'Столбцы', принимающий первый аргумент типа 'IPagedList', может быть найден (вам не хватает директивы using или ссылки на сборку?) Если я просто передам @model Datatable, он будет работать, но подкачка страниц не будет работать

...