2012-02-27 3 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"); 
    } 
} 

Это позволит, что код выполняется один раз (при загрузке страницы в первый раз), а затем игнорировать всякий раз, когда страница является размещение обратно на сервер из-за взаимодействия с пользователем и т.д.

Для более подробную информацию см. в разделе Page.IsPostBack на MSDN.

+0

Так просто! Спасибо, приму через несколько минут :) –

+0

@AndrewDeForest Без проблем, рад я мог бы помочь =) – jadarnel27

+0

@FishBasketGordo Спасибо! Я обвиняю intellisense в этом опечатке. – jadarnel27

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(); 
     } 
} 
Смежные вопросы