Asp.net (c #) пейджинг без какого-либо контроля - PullRequest
0 голосов
/ 22 октября 2011

Я новичок и новичок в asp.net (C #).Я мало знаю о привязке к GridView Control.Но сейчас я сталкиваюсь с огромными проблемами.Некоторые из моих данных повторяются, и я контролирую их с помощью кода.Поместите мой код в переменную, добавьте к div, а не в GridView.Я также хочу пейджинг для этого.

Кто-нибудь может помочь?Спросите меня, ребята, вам нужно что-то более конкретное.Я новичок, поэтому не знаю, какой код предоставить.

Вот обзор:
У врачей есть много назначенных мест
у назначенных мест есть несколько дней
у нескольких дней несколько раз-shift ...

public void BindList(int start, int pagesize)
{
    lblPageIndex.Text = page.ToString();
    roles = DoctorBLL.GetAllDoctor(page, recordPerPage);
    List<int> rIDs = ((from r in roles select r.doctorID).Distinct()).ToList();
    foreach(int rID in rIDs)
    {
        doctorList.InnerHtml += "<table width='100%' border=1 cellspacing=0 style='border-collapse:collapse;margin-top:10px;'><tr>";
        List<DoctorEntity> dlist = roles.Where(role => role.doctorID == rID).ToList();
        if (dlist.Count > 0)
        {
            doctorList.InnerHtml += "<td>";
            doctorList.InnerHtml += "<h2>" + dlist.First().title + "</h2>";
            doctorList.InnerHtml += "<h3>" + dlist.First().name + "</h3>";
            doctorList.InnerHtml += "</td>";
            doctorList.InnerHtml += "<td>";
            doctorList.InnerHtml += dlist.First().qualification;
            doctorList.InnerHtml += "</td>";
            doctorList.InnerHtml += "</tr>";
            doctorList.InnerHtml += "<tr>";
            doctorList.InnerHtml += "<td colspan='3'>";
        }
        List<int> dirIDS = ((from r in dlist select r.directoryID).Distinct()).ToList();

        foreach (int dirid in dirIDS)
        {
            doctorList.InnerHtml += "<ul style='width:200px;float:left;list-style:none;'>";
            List<DoctorEntity> dirlist = dlist.Where(dt => dt.directoryID == dirid).ToList();
            if (dirlist.Count > 0)
            {
                doctorList.InnerHtml += "   <li><h4>" + dlist.First().directoryName + "</h4></li>";
            }
            foreach (DoctorEntity dir in dirlist)
            {
                doctorList.InnerHtml += "<li>" + dir.dayStr + " ( " + dir.startTime + " : " + dir.endTime + " ) </li>";
            }

            doctorList.InnerHtml += "</ul>";
        }
        doctorList.InnerHtml += "</td>";
        doctorList.InnerHtml += "</tr>";
        doctorList.InnerHtml += "</table>";
    }
    foreach (DoctorEntity entity in roles)
    {
        recordCount = entity.recordCount;
        break;
    }
    int flag = recordCount % recordPerPage;
    if (flag != 0)
    {
        flag = (recordCount / recordPerPage) + 1;
    }
    else
    {
        flag = recordCount / recordPerPage;
    }

    lblTotalPage.Text = flag.ToString();
    lblTotal.Text = recordCount.ToString();

    doctorList.DataBind();
}
#endregion

1 Ответ

0 голосов
/ 22 октября 2011

Вы можете использовать курсоры и Request.QueryString для достижения подкачки без использования клавиш управления.

Пример. Если URL-адрес вашей страницы похож на http://localhost/MyApp/DoctorsList.aspx затем, когда вы хотите увидеть следующие 10 записей, просто измените URL на http://localhost/MyApp/DoctorsList.aspx?page=2

в вашем коде позади используйте int pageNumber = Convert.ToInt32(Request.QueryString["page"]), чтобы получить запрошенную страницу, затем используйте курсор базы данных, чтобы выбрать конкретные записи на основе значения pageNumber, а затем перестройте таблицу с кодом, предоставленным в вопросе. Короче говоря, я хочу сказать, что вместо того, чтобы получить весь список врачей, наберите n врачей, используя курсор, а затем используйте Request.QueryString для просмотра оставшегося списка.

Но, как сказал Хасан Мокдад в своем комментарии, было бы лучше, если бы вы попробовали с видом сетки

...