我在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。
答案 0 :(得分: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中检索该List并重新填充GridView复选框。