2012-02-27 107 views
2

我有填充一個下拉列表頁面加載時,像這樣:只有項目添加到一個下拉列表,一旦

protected void Page_Load(object sender, EventArgs e) 
{ 
     ddlCars.Items.Add("Ford"); 
     ddlCars.Items.Add("Chevy"); 
     ddlCars.Items.Add("BMW"); 
     ddlCars.Items.Add("Jeep"); 
     ddlCars.Items.Add("Nissan"); 

} 

它工作正常,但是當用戶更改下拉列表的選擇,該列表被重新填充,並且我看到相同的項目兩次,因爲頁面正在重新加載並且這些值正在被重新添加。

什麼是最好的方法來阻止這種情況發生? AutoPostBack保持啓用狀態非常重要,以便根據用戶選擇更改信息。

感謝

回答

10

你需要把這些代碼在一個!Page.IsPostBack塊。

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { 
     ddlCars.Items.Add("Ford"); 
     ddlCars.Items.Add("Chevy"); 
     ddlCars.Items.Add("BMW"); 
     ddlCars.Items.Add("Jeep"); 
     ddlCars.Items.Add("Nissan"); 
    } 
} 

這將允許該代碼運行一次(在頁面加載時第一次),然後被忽略每當頁面由於用戶交互回發到服務器等

對於更多信息,請參閱MSDN上的Page.IsPostBack

+0

太簡單了!謝謝,將在幾分鐘內接受:) – 2012-02-27 18:15:30

+0

@AndrewDeForest沒問題,很高興我可以幫助=) – jadarnel27 2012-02-27 18:16:11

+0

@FishBasketGordo謝謝!我錯誤地指責了這個錯字。 – jadarnel27 2012-02-27 20:26:27

4
protected void Page_Load(object sender, EventArgs e) 
{ 
     if (!IsPostBack) {   
     ddlCars.Items.Add("Ford"); 
     ddlCars.Items.Add("Chevy"); 
     ddlCars.Items.Add("BMW"); 
     ddlCars.Items.Add("Jeep"); 
     ddlCars.Items.Add("Nissan"); 
     //ddlCars.datasource=? 
     //ddlCars.databind(); 
     } 
} 
相關問題