2011-04-12 61 views
2

我在一页的Page_Load方法中有一个foreach循环来决定是否启用一个按钮。ASP.NET Page_Load值滞后于一个回传

代码:

foreach (var class in classes) 
{ 
    for (var i = studentsList.Count - 1; i >= 0; i--) 
    { 
     if (studentsList[i].Id == class.student_id) 
      studenstList.Remove(studentsList[i]); 
    } 
} 
if (studentsList.Count == 0) 
{ 
    button1.Enabled = false; 
    button1.Text = "a"; 
} 
else 
{ 
    button1.Enabled = true; 
    button1.Text = "b"; 
} 
if (Page.IsPostBack) { return; } 

问题:

studentsList.Count值由一个回传滞后。如果在循环之后它应该是1,它在下一次回发时只有值1。我已经调试确认是这种情况。

回答

0

我猜的学生名单通过点击网页上的按钮进行更新。

将启用button1的代码放在该按钮的button_click事件上。

0

按钮是否按下编辑学生名单?如果是这样,按下按钮的代码将在Page_Load代码后触发。

0

你的问题是,你应该等待相应的事件,并在该事件处理程序中写入此逻辑。为了清楚起见,页面加载比控件事件发生得早。