2012-02-29 63 views
1

我知道标题含糊不清,所以我会在这里完整地解释我的问题。如何保持CheckBoxList的更改状态?

所以,我运行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 

我用一个简单的载入我的CheckBoxList for循环

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

的CheckBoxList我想尝试当我的更新做的事件处理程序保存CheckBoxList的值按钮。

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

发布您的代码。它可能是因为每个页面加载都重新绑定。如果他们能够看到您的代码指出可能导致问题的原因,那么每个人都可以更轻松地为您提供帮助。 – kd7 2012-02-29 14:03:03

回答

0

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

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

+0

Riiiight。他们可能不会喜欢我舔更新按钮....而且,当我检查是否不是回发时,我将checkboxlist填充到page.load的块中。 – 2012-02-29 15:35:58

0

我相信你在PageLoad事件中绑定了CheckboxList。只要将代码中的给定的代码块中:

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

这只会在情况下,如果网页加载第一次,没有任何后回发的CheckBoxList的绑定。

我希望这会帮助你。

+0

所以我尝试了一下简单的页面刷新,看它是否至少保持了CheckBoxList的值相同,并没有。便便。 – 2012-02-29 15:29:26

+0

您可以请检查Checkboxlist属性“EnableViewState”。它应该设置为true。 – Sankalp 2012-02-29 15:31:55

+0

刚刚检查过,它默认为True。 – 2012-02-29 15:44:06

相关问题