-1

我在gridview中有一个复选框列表。

您可以检查一个,也可以检查任意多个,最多 10 个。

在分页应用程序中选中一个或多个框后,您将分页到下一页,这些框未选中。

如何保持选中的框保持选中状态,直到用户取消选中它们?

我下面的代码不起作用。

For Each r As GridViewRow In GridMaks.Rows
    If CType(r.Cells(0).FindControl("makos"), CheckBox).Checked Then
        Dim marko As String = baseHint & "&cup=" & r.Cells(4).Text
        CType(r.Cells(0).FindControl("marko"), CheckBox).Checked = True '// added this hoping to keep checkbox checked but it doesn't work
    End If
Next

很抱歉包含 2 种口味的 c# 和 vb.net。如果有帮助,我可以将 c# 转换为 vb。

4

1 回答 1

1

如果每次加载页面时都将数据绑定到网格,则复选框将不会保留,因为它们正在被重置。尝试像下面的简单示例代码一样执行检查,以仅在请求不是回发时绑定数据。

if (IsPostBack) { 
    // It is a postback, don't bind data
} else { 
    // It is not a postback, bind data
} 

此外,您可能会发现这篇关于Persisting checkbox state while paging对您的需要很有帮助的文章。在 GridView 的“PageChanging”事件中,文章说将选中复选框的每一行的行索引存储在 List 中,然后将该 List 存储在 ViewState 中。当页面更改时,从 ViewState 中检索该列表并重新填充 GridView 复选框。

于 2012-08-27T17:37:37.860 回答