Номер строки генерируется автоматически для всех страниц непрерывно в виде сетки в asp.net?

Я хочу автоматически генерировать номер строки в gridview для всех страниц непрерывно. Для EG: у меня есть 3 страницы по сетке 150 записей. Каждая страница содержит 50 записей.

I want to display row number for all records in a grid from 1 to 150 continuously.

Вот мой код:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
    <asp:TemplateField HeaderText = "Row Number" ItemStyle-Width="100">
        <ItemTemplate>
            <asp:Label ID="lblRowNumber" Text='<%# Container.DataItemIndex + 1 %>' runat="server" />
        </ItemTemplate>
    </asp:TemplateField>
    <asp:BoundField DataField="Name" HeaderText="Name" ItemStyle-Width="150" />
    <asp:BoundField DataField="Country" HeaderText="Country" ItemStyle-Width="150" />
</Columns>
</asp:GridView>

Он отображает номер строки на каждой странице, начиная с 1 до 50. Я действительно хочу число от 1 до 150. Кто-нибудь, пожалуйста, помогите мне, если у вас есть какие-либо идеи. Заранее спасибо.

Я применил приведенный выше код, и результат был для страницы eace номер строки, начинающийся с 1. но я хочу, чтобы номер строки постоянно. Если первая страница заканчивается номером 50, то номер первой строки страницы 2 начинается с 51, но в моем коде он начинается снова с номером 1. @JohnB

divikdiya 26.10.2018 09:17

Если вы используете GridView AllowPaging и устанавливаете PageSize на 50, то Container.DataItemIndex будет считать соответственно. Похоже, вы сами делаете перелистывание и привязываете по 50 элементов за раз. Тогда неудивительно, что он никогда не посчитает больше 50.

VDWWD 26.10.2018 09:19

Да . Есть ли другое альтернативное решение этой проблемы @VDWWD

divikdiya 26.10.2018 09:21

Либо используйте встроенную подкачку, либо не используйте ItemIndex для отображения номера строки, а создайте свой собственный.

VDWWD 26.10.2018 09:24

Без itemindex, как отобразить номер строки @VDWWD

divikdiya 26.10.2018 09:26
1
5
764
2

Ответы 2

Я нашел хитрый способ легко создать правильные номера строк с неиспользуемым свойством PageSize. Если вы установите это правильно, номера строк будут правильными, и это ни на что не повлияет, поскольку для AllowPaging установлено значение false.

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
    <Columns>
        <asp:TemplateField HeaderText="Row Number" ItemStyle-Width="100">
            <ItemTemplate>
                <asp:Label ID="lblRowNumber" Text='<%# (Container.DataItemIndex + 1) + (GridView1.PageSize * 50) %>' runat="server" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

Обратите внимание, что вы должны установить значение PageSize перед привязкой данных.

GridView1.DataSource = source;
GridView1.PageSize = 2;
GridView1.DataBind();

он не работает должным образом, потому что размер страницы не может быть изменен во внешнем интерфейсе. Я использую это в коде, он работает нормально. Спасибо @VDWWD

divikdiya 26.10.2018 11:37

Попробуй это.

Text='<%# (GridView1.PageIndex * GridView1.PageSize) + Container.DisplayIndex + 1 %>'

Другие вопросы по теме