Gridview в панели обновлений теряет альтернативную окраску строки при смене страницы - PullRequest
1 голос
/ 11 октября 2011

У меня есть GridView на панели обновлений.

GridView оформлен так, что каждая альтернативная строка имеет свой цвет.

Когда я меняю страницу в GridView, она теряет цвет альтернативной строки. Все остальные стили сохраняются.

Если я удаляю панель обновления, GridView сохраняет цвет альтернативной строки после смены страницы.

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

Спасибо, Neil

РЕДАКТИРОВАТЬ:

Вот код aspx

<div id="active-logbooks" class="tab-content clearfix">
    <div class="left-column">
        <asp:MultiView runat="server" ID="mlvLogbooks" >
            <asp:View runat="server" ID="vActiveLogbooks">
                <asp:GridView PagerSettings-Mode="NextPrevious" PagerSettings-Position="Top" PagerSettings-NextPageImageUrl="~/img/right-arrow.png" PagerSettings-PreviousPageImageUrl="~/img/left-arrow.png" AllowPaging="true" runat="server" ID="gvActiveLogbooks" PageSize="5" AutoGenerateColumns="false" CssClass="lesson stripe-me" OnRowDataBound="gvActiveLogbooks_RowDataBound" OnPageIndexChanging="gvActiveLogbooks_PageIndexChanging">
                    <Columns>
                        <asp:BoundField HeaderText="Logbook number" DataField="LogbookNumber" ItemStyle-CssClass="border" ItemStyle-Width="100" />
                        <asp:BoundField HeaderText="Origin" DataField="Origin" ItemStyle-CssClass="border" ItemStyle-Width="100" />
                        <asp:BoundField HeaderText="Order Reference" DataField="OrderReference" ItemStyle-CssClass="border" ItemStyle-Width="100" />
                        <asp:TemplateField HeaderText="Transfer Date">
                            <ItemTemplate>
                                <asp:Literal runat="server" ID="lblTransferDate" />
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField>
                            <ItemTemplate>
                                <asp:HyperLink runat="server" ID="lnkTransferLogbook" CssClass="border" />
                            </ItemTemplate>
                        </asp:TemplateField>
                    </Columns>
                </asp:GridView>
                <a href="javascript:__doPostBack('ctl00$MainMaster$gvActiveLogbooks','Page$Prev')" id="lnkGridviewPrev" runat="server" class="left-arrow">Previous</a><asp:Literal runat="server" ID="litBreaker" Text=" |" />
                <a href="javascript:__doPostBack('ctl00$MainMaster$gvActiveLogbooks','Page$Next')" id="lnkGridviewNext" runat="server" class="right-arrow">Next</a>
            </asp:View>
        </asp:MultiView>
    </div>

И эта функция вызывается при смене страницы:

protected void gvActiveLogbooks_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    HideShowGridViewPagerLinks(e.NewPageIndex);
    gvActiveLogbooks.DataSource = _logbooks;
    gvActiveLogbooks.PageIndex = e.NewPageIndex;
    gvActiveLogbooks.DataBind();
}

Нигде на странице ничего не делается с окрашиванием строк GridView

    protected void gvActiveLogbooks_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType != DataControlRowType.DataRow)
        return;

    Literal transferLabel = (Literal)e.Row.Cells[(int)ActiveLogbookGridViewColumns.TransferDate].FindControl("lblTransferDate");
    transferLabel.Text = _logbooks[e.Row.RowIndex].TransferDate.ToShortDateString();

    HyperLink transferLink = (HyperLink)e.Row.Cells[(int)ActiveLogbookGridViewColumns.TransferLink].FindControl("lnkTransferLogbook");
    transferLink.Text = TransferLinkText;
    transferLink.NavigateUrl = "TransferLogbooks.aspx?id=" + Guid.NewGuid();
}

1 Ответ

1 голос
/ 12 октября 2011

Я предполагаю, что некоторое взаимодействие между вашими CSS-классами и постбэком портит это.Что произойдет, если вы переключитесь на теги RowStyle и AlternateRowStyle (пример здесь ) и будете ссылаться на свои классы CSS, используя свойство CssClass этих тегов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...