2011-10-11 87 views
1

我在更新面板中有一个GridView。更新面板中的Gridview在页面更改中丢失备用行着色

GridView的样式使每个备用行都是不同的颜色。

当我在GridView上更改页面时,它会丢失备用行着色。所有其他风格都保持不变。

如果我删除更新面板,GridView会在更改页面后保持备用行着色。

有没有人有任何想法可能会导致此问题或如何解决它?

感谢, 尼尔

编辑:

下面是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(); 
} 

在页面上没有任何地方可以用G着色ridView行

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(); 
} 
+0

你在使用ScriptManager吗? –

+0

您的GridView是否真的带有一些css样式的**样式,或者您是否使用一些代码绘制它? –

+0

是的页面上有ScriptManager标签。相当肯定这是它的样式的CSS代码。我将发布上面的代码。 – Neil

回答

1

我猜你的CSS类和回发之间的一些互动是搞砸了。如果切换到RowStyleAlternateRowStyle标记(示例here),并在这些标记上使用CssClass属性引用CSS类,会发生什么情况?

+0

谢谢,这对我有效 – Neil