【问题标题】:Total Record count and paging on the same line in an asp.net gridview but not in the footer总记录数和分页在 asp.net gridview 中的同一行但不在页脚中
【发布时间】:2019-10-07 09:46:45
【问题描述】:

您好,我过去一定是这样做的,我所要求的非常简单,但是对于我的一生,我不记得了,也找不到任何在线帮助我的东西。我有一个 asp.net gridview 并且我通过数字设置有基本的沼泽标准分页(我实际上只是按照我想要的外观设计它,但可以完成工作)。但是,我想在同一分页行中添加记录计数。我知道我可以添加页脚并为其添加模板,但是首先我不想重新开发已经工作的东西,其次我的一些没有分页的网格也有拖放功能,所以我真的不想要开始向我的网格添加页脚。我目前得到的是一个按我的需要设计的分页行,我要做的就是在其中添加一个标签或其他东西,这样我就可以添加一个计数,例如 1 到 10、11 到 20 等等。有谁知道如何做到这一点,但在页脚中没有。

【问题讨论】:

  • 这对您有帮助吗? stackoverflow.com/a/4087676/6768729
  • 不是真的,因为我知道如何完成分页。我想要的是在分页行中找到一个简单的 x 条记录。我知道我不知道背后的代码是如何在 asp.net webform 上实现它,因为我试图避免在网格上创建新的页面样式模板,因为我将不得不重新发明轮子以便与分页

标签: c# asp.net vb.net


【解决方案1】:

对于遇到问题的其他人,我设法通过在 VB.NET/C# 中创建两个标签(无论哪种语言)并将其添加到 gridview RowDataBound 中的行来解决此问题。

先找行类型为pager

If e.Row.RowType = DataControlRowType.Pager Then

创建几个标签,这些标签将进入其中的单元格和一个表格行,以便这些单元格可以去某个地方。

 Dim TotalRecords As New Label
 Dim TotalPages As New Label
 Dim Row As TableRow = TryCast(e.Row, TableRow)
 Dim Cell1 As New TableCell
 Dim Cell2 As New TableCell

将文本添加到每个标签

TotalRecords.Text = ctype(gridview.DataSource, DataView).Table.Rows.Count & " total records"
TotalPages.Text = "Page " & (gridview.PageIndex + 1) & " of " gridview.PageCount

然后将这些标签添加到单元格中

Cell1.Controls.Add(TotalRecords)
Cell2.Controls.Add(TotalPages.Text)

现在将这些单元格添加到我们的寻呼机行(这可以按任何顺序完成,但我想要总记录----Pages--- Page n of x

Row.Controls.AddAt(0, Cell1)
Row.Controls.Add(Cell2)

这将在 pager 行中添加两个额外的 td,因此在我们最终的 HTML 中

<tr class="Pager">
 <td><span>n total records</span></td>
 <td></td>
 <td><span>Page n of n</span></td>
</tr>

因此,理想情况下,您可以在分页样式中添加一个类,这可以在 asp.net 中完成,但 PagerStyle css。如果你想也可以通过向单元格对象添加一个类来设置每个 td 的样式。

Cell1.CssClass = "Style1"
Cell2.CssClass = "Style2"

将单元格添加到行后,您将拥有 3 个控件,因此对于任何间距问题,您也可以开始使用列跨度。

【讨论】:

    猜你喜欢
    • 2015-01-18
    • 1970-01-01
    • 1970-01-01
    • 2018-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-08
    相关资源
    最近更新 更多