如何保持复选框的状态?

时间:2012-08-27 17:20:40

标签: c# asp.net vb.net

我在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。

1 个答案:

答案 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复选框。