如何保持CheckBoxList的状态?

时间:2012-02-29 13:59:59

标签: asp.net vb.net

我知道标题含糊不清,所以我会在这里完整地解释我的问题..

所以,我正在运行VB.net 3.5。我有一个动态的服务器名称列表,我想把它们放在CheckBoxList中。列表已填充,并使用相同的列表,我列出了每个列出的服务器的性能。我希望能够选中并取消选中代表服务器的复选框,当我点击更新按钮时,它将创建一个新图形,并仅绘制仍然检查的服务器。我注意到在处理按钮点击之前页面仍然加载,因此CheckBoxList会重新填充自己,然后才能读取当前的CheckBoxList。有没有人对此有任何意见? 这是我的负担。我在ShowView()

中填充了我的复选框列表
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  If Not Me.IsPostBack Then
    If _myQSVar.Count = 0 Then
            Calendar1.SelectedDate = Date.Now.Date.AddMonths(-6)
            Calendar2.SelectedDate = Date.Now.Date
        End If
        tbFromDate.Text = Calendar1.SelectedDate.ToShortDateString()
        tbToDate.Text = Calendar2.SelectedDate.ToShortDateString()
        lstControls = New List(Of System.Web.UI.Control)
        ShowView()
    End If
End Sub

我使用简单的for循环加载我的checkboxlist

For each one As String in ServerList
   chkboxList.Items.Add(one)
Next

当我为更新按钮执行事件处理程序时,我想尝试保留checkboxlist值。

Private Sub btnUpdateGraph_Click(sender As Object, e As System.EventArgs) Handles btnUpdateGraph.Click
'insert code
End Sub

2 个答案:

答案 0 :(得分:0)

您是否填写了form.load上的复选框列表?如果是这样,请确保检查是否Page.ispostback。仅当它不是回发时才加载复选框列表。这将确保单击时不重新加载页面(和复选框列表)。

另外,请不要舔更新按钮。他们真的不喜欢这样!

答案 1 :(得分:0)

我相信你在PageLoad Event上绑定了CheckboxList。只需将代码放在给定的代码块中:

if(!IsPostback)
{
// Bind your Checkbox List here
}

如果页面首次加载,而不是在任何回发之后,这将绑定您的复选框列表。

我希望这会帮助你。