使用分页时访问gridview上的控件

问题描述 投票:0回答:1

我正在尝试从具有多个页面的网格视图上的复选框获取回发信息。当只有一页数据时,一切正常,但如果您移动到不同页面,无论您在哪一页,分页复选框总是返回 false。 例如,在我的应用程序中,我单击了第 2 页链接并选择了该页面上的复选框,然后发回。 在我的处理程序中,我迭代每一行并像这样检查。

 For Each row In grdView.Rows
         Dim RowCheckBox As CheckBox = CType(row.FindControl(crtl), CheckBox)
        If RowCheckBox.Checked Then
            sSelectedItem = CType(row.FindControl(sIDFieldName), TextBox).Text
            checkedItems.Add(sSelectedItem)
        End If
 Next

所以我想要的信息在第2页的第一行(第6行)。 但没有一个复选框报告被选中。 这是我的 gridview 报告的内容:

? grdView.Rows.Count 5 
? grdView.PageCount 2 
? grdView.PageSize 5

因此,即使它知道每页有 5 行,并且有 2 页,它也不会看到超过 5 行。它还将 pageindex 报告为 0(第一页) 如果我将 PageIndex 设置为 1(第二页),则 grdView.Rows.Count = 5,即使第二页上只有 1 行。

尽管将页码设置为第二页,但我也得到了与第一页相同的返回值。 我不知道如何在第一个页面以外的页面上获取任何内容。

我用谷歌搜索了这个,令人惊讶的是没有找到答案,因为这似乎是常用来获取数据的东西。 这是 C# 部分中一个未回答问题的重新发布,但我认为也许可以通过新帖子找到答案。

我查看了复选框字段,发现编号问题。 例如,在第 2 页上有一行,复选框的 ID 为 ....$ctl02$... 但是当您在循环中查询该复选框时,它给出的 UniqueID 为 ....$ctl11$...很明显他们返回的是 false。 但是,如果您使用页面中显示的 ID 执行 Request.Item,则会出现该复选框。 使用 UniqueID,复选框会返回,您什么也得不到,因此所有复选框的选中属性都是 false。

如有任何帮助,我们将不胜感激。

asp.net gridview pagination findcontrol
1个回答
0
投票

当您最初将数据设置到 GridView 时,您可能会执行以下操作:

grid.DataSource = something
grid.DataBind()

当您进行数据绑定时,当前页面的数据将绑定到网格,仅此而已。 如果要从其他页面访问数据,需要重置数据源,并重新绑定数据。

仅将当前页设置为 2 没有帮助,因为第二页的数据从未绑定到网格。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.