Как я могу добавить пейджинг в пользовательские элементы управления? - PullRequest
2 голосов
/ 19 ноября 2010

Мне нужно отобразить свои пользовательские элементы управления - группы из 8 или 10 должны выглядеть красиво. В настоящее время они заполнены:

<asp:PlaceHolder ID="ProfileContainer" runat="server"></asp:PlaceHolder>

И заполнитель заполняется так:

var model = //LINQ to Entities query

foreach(var profile in model) {
    Controls_Profile profile = (Controls_Profile)Page.LoadControl("~/Controls/Profile.ascx");

    profile.Name = model.Name;
    //more properties
    ProfileContainer.Controls.Add(profile);
}

Как я могу пейджировать результаты, если у меня есть сотни профилей? Большинство сообщений, которые я нахожу, связаны с созданием пользовательского элемента управления подкачкой страниц, который просто разбивает страницы на таблицы.

Я думал о создании счетчика, который добавит первый элемент управления к <div id="Group1">. После 8 или 10 элементов управления добавьте </div>. Я мог бы использовать jQuery для вставки предыдущих / следующих ссылок и управления их потоком на основе номера группы. Но как мне сделать Response.Write("<div id="groupx">"); в середине цикла при добавлении элементов управления? Как это вообще сработает?

1 Ответ

0 голосов
/ 19 ноября 2010

Что касается моего комментария:

public DataTable getControls()
{
     DataTable dt = new DataTable();
     //Code to populate table
    return dt;
}

И:

<asp:GridView ID="YourGridView" AllowPaging="true" DataSource='<%# getControls() %>'></asp:GridView>

Я боюсь, что ваш источник данных должен иметь какой-то перечислимый интерфейс для работы пейджинга.

Если это не поможет, я предлагаю вам ознакомиться с распространенными методами подкачки страниц и реализовать что-то ручное.Не так сложно, как вы думаете.

...