Обрабатывает эквивалентный в C # для повторителя

1

У меня есть следующий элемент управления ASP:

<div class="pageNumSec">
    <asp:LinkButton runat="server" ID="btnPrevious" OnClick="LinkButton1_Click" CssClass="directForBackBtn" Text="<< Previous Page"></asp:LinkButton>

    <asp:repeater runat="server" ID="rptPager">
        <ItemTemplate>
            <asp:LinkButton runat="server" ID="btnPageNumber" CssClass="pageNum" Text='<%#Container.DataItem%>' CommandArgument='<%#Container.DataItem%>'></asp:LinkButton>
        </ItemTemplate>
    </asp:repeater>

    <asp:LinkButton runat="server" ID="btnNext" OnClick="LinkButton1_Click"  CssClass="directForBackBtn" Text="Next Page >>"></asp:LinkButton>
</div>

Это отображает номера страниц в виде ссылок.

Это код, который должен быть a), чтобы эти ссылки обновили страницу и b) выделили текущую страницу жирным шрифтом:

//navigate by using the page number links
protected void rptPager_ItemCommand(object source, System.Web.UI.WebControls.RepeaterCommandEventArgs e)
{
    _pageNumber = int.Parse(e.CommandArgument.ToString());
    PopulatePage(_pageNumber);
}

//make the current page bold
protected void rptPager_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
    //is current item the current page.
    if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
    {
        int currentPage = Convert.ToInt32(e.Item.DataItem);
        LinkButton currentLinkBtn = (LinkButton)e.Item.FindControl("btnPageNumber");

        //if true, highlight text
        if (currentPage == _pageNumber || (currentPage == 1 && _pageNumber == 0))
        {
            currentLinkBtn.Font.Bold = true;
        }
    }
}

В настоящее время ни один из этих методов не срабатывает при взаимодействии со страницей, эти методы были переписаны на С# из VB.Net. Единственное различие, которое я вижу в исходном коде, заключается в том, что в VB содержались ключевые слова Handles:

Protected Sub rptPager_ItemCommand(source As Object, e As System.Web.UI.WebControls.RepeaterCommandEventArgs) Handles rptPager.ItemCommand

    _pageNumber = Integer.Parse(e.CommandArgument)

    PopulatePage(_pageNumber)

End Sub



Protected Sub rptPager_ItemDataBound(sender As Object, e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles rptPager.ItemDataBound
    'is current item the current page.

    If e.Item.ItemType = ListItemType.AlternatingItem OrElse
        e.Item.ItemType = ListItemType.Item Then

        Dim currentPage As Integer = CType(e.Item.DataItem, Integer)
        Dim currentLinkBtn As LinkButton = CType(e.Item.FindControl("btnPageNumber"), LinkButton)

        'if true, highlight text
        If currentPage = _pageNumber OrElse (currentPage = 1 AndAlso _pageNumber = 0) Then
            currentLinkBtn.Font.Bold = True
        End If
    End If

End Sub

Может ли кто-нибудь сообщить мне, как подключить эти методы до ASP, чтобы работа ссылок и текущий номер страницы были выделены жирным шрифтом?

Теги:

1 ответ

3
Лучший ответ

Вам нужно добавить обработчиков к вашему ретранслятору:

<asp:Repeater runat="server" ID="rptPager"
    OnItemDataBound="rptPager_ItemDataBound"
    OnItemCommand="rptPager_ItemCommand">
  • 0
    Спасибо, вот чего мне не хватало!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню