Linkbutton в Повторителе для подкачки страниц ASP.NET

Я делаю веб-страницу с поиском, который приносит большую информацию от MSSQL. То, что я сделал, является хранимой процедурой, которые возвращают только страницу, которая будет замечена на веб-сайте.

Прямо сейчас я работаю над подкачкой страниц, поскольку я должен показать что-то подобное, чем Google. Если Вы на уровне страницы 1, они показывают первые 10 страниц и если Вы на уровне страницы 19, они показывают начиная со страницы 9 - 28.

Я думаю наилучший вариант показать, что номера страниц используют linkbutton в повторителе. Проблема, которую я имею теперь, состоит в том, что я не знаю лучший способ взять номер страницы при обратной передаче.

При выполнении быстрого образца я присвоил ArrayList repeater.datasource:

  <asp:Repeater ID="Repeater2" runat="server">
    <ItemTemplate>
            <asp:LinkButton ID="LinkButton1" runat="server" CommandArgument="<%# Container.DataItem %>"><%# Container.DataItem %></asp:LinkButton>
    </ItemTemplate>
  </asp:Repeater>
  <asp:LinkButton ID="LinkButton2" runat="server" CommandArgument="4654">Test #1</asp:LinkButton>

В моем файле Default.aspx.cs у меня есть следующий код

    protected void Page_Load(object sender, EventArgs e)
    {
        if (this.IsPostBack)
        {
            string x = LinkButton2.CommandArgument;
            //string y = LinkButton1.CommandArgument;
//I know this line will not work since the Linkbutton1 is inside the Repeater.
            }

Что я сделаю для создания этого работами?

У кого-либо есть лучшее решение для этой подкачки страниц?

Спасибо

Jerry

6
задан Jakob Gade 26 February 2010 в 01:03
поделиться

3 ответа

Подумать только, пробовали ли вы использовать объект "DataGrid", добавляя столбец, делая его шаблон элемента, а затем вставьте элементы, которые необходимо повторить в отформатированном шаблоне. DataGrid также автоматически обрабатывает разбиение по страницам, если задано значение true ...

0
ответ дан 10 December 2019 в 02:46
поделиться

Вы никогда не указали, какой тип управления используется для вашего пейджинга. Если вы используете ASP.Net 3.5, я НАСТОЯТЕЛЬНО предлагаю использовать элемент управления ListView и обрабатывать разбиение на страницы с помощью элемента управления DataPager.

0
ответ дан 10 December 2019 в 02:46
поделиться

Вы ищете событие ItemCommand:

  <asp:Repeater ID="Repeater1" OnItemCommand="ItemCommand" runat="server">
    <ItemTemplate>
      <asp:LinkButton CommandName="ButtonEvent" CommandArgument="<%# Container.DataItem %>" Text="<%#Container.DataItem %>" runat="server"></asp:LinkButton>
    </ItemTemplate>
  </asp:Repeater>

Код позади:

protected void Page_Load(object sender, EventArgs e)
{
  if (!Page.IsPostBack)
  {
    Repeater1.DataSource = Enumerable.Range(1, 10);
    Repeater1.DataBind();
  }
}

protected void ItemCommand(Object Sender, RepeaterCommandEventArgs e)
{
  Response.Write("The no. " + ((LinkButton)e.CommandSource).Text + " button was clicked!");
}

... но вы действительно уверены, что вам нужен LinkButton? Простой тег привязки HTML может работать так же хорошо, и он менее беспорядочный. :)

9
ответ дан 10 December 2019 в 02:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: