2011-04-12 56 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

你的問題是,你應該等待相應的事件,並在該事件處理程序中寫入此邏輯。爲了清楚起見,頁面加載比控件事件發生得早。