簡體   English   中英

過濾(或隱藏)Gridview行時,Asp.net / c#-> Gridview Pager無法更新

[英]Asp.net/c# -> Gridview Pager doesn't get updated when gridview rows are filtered (or hidden)

我在下面的代碼中有一些條件,由於這些原因,我不得不隱藏向最終用戶顯示的行。 “ ShowRow”是一個布爾值,它根據這些條件在GetUnitOfMeasure函數中設置(此處未復制)。

有一些現實條件迫使我躲藏起來。 在構建數據源時,我試圖將它們包括在內,但必須在顯示之前將其隱藏。

我面臨的問題是,基於最后顯示的總行,分頁沒有得到刷新。 例如,如果我在網格中共有200行,並且僅需要顯示2行,並且如果在分頁3中找到了這2行,那么在加載頁面時它仍顯示分頁1 2 3 4,而第3頁具有有效的2行。

請提出建議。我還對gridview使用了“ onDataBound”(未在此處復制),但我只是在這里隱藏了一些列。

ASPX頁面

<asp:GridView ID="SearchResults" runat="Server" AutoGenerateColumns="false" EnableViewState="false"
AllowPaging="true" PageSize="50"  OnDataBound ="SearchResults_DataBound" OnRowDataBound="SearchResults_RowDataBound">
<RowStyle CssClass="EvenRow" />
<AlternatingRowStyle CssClass="OddRow" />
<Columns>
    <asp:TemplateField meta:resourceKey="UmSellField">
        <ItemStyle CssClass="alpha" />
        <HeaderStyle CssClass="alpha" />
        <ItemTemplate>
            <asp:Label ID="UmSellLabel" runat="server" EnableViewState="false" Text='<%# GetUnitOfMeasure(Container.DataItem,false) %>'></asp:Label>
        </ItemTemplate>
    </asp:TemplateField>
</Columns>
</asp:GridView>

代碼隱藏

protected void SearchResults_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType.Equals(DataControlRowType.DataRow))
    {
        e.Row.Visible = showRow;
        e.Row.Cells[0].Visible = showRow;
    }
}

我不確定它是否會工作,但是也許您嘗試設置e.Row.Enabled = showRow以及設置其可見性

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM