2013-04-25 11 views
5

Chciałbym wiedzieć, jak utworzyć listę rozwijanych list w klasie C#. Próbowałam tak:Jak utworzyć listę DDL w języku C# programowo

List<DropDownList> _ddlCollection; 
for (int i = 0; i < 5; i++) 
      { 
       _ddlCollection.Add(new DropDownList()); 
      } 

Następnie dodaję _ddlCollection na stronie ASP.NET tak:

foreach (DropDownList ddl in _ddlCollection) 
    { 
     this.Controls.Add(ddl); 
    } 

Ale to łamie on line:

_ddlCollection.Add(new DropDownList()); 

można powiedzieć jak dodać kilka DDLów do listy?

Odpowiedz

3

It "przerwy", ponieważ nie została zainicjowana zmienna lokalna _ddlCollection tutaj:

List<DropDownList> _ddlCollection; 
// you cannot use _ddlCollection until it's initialized, 
// it would compile if you'd "initialize" it with null, 
// but then it would fail on runtime 

lokalna zmienna wprowadzona przez lokalną zmienną-deklaracji nie jest automatycznie inicjowany, a tym samym nie ma wartości domyślnej. Taka lokalna zmienna uważana jest początkowo za nieprzydzieloną. Miejscowy-deklaracja zmiennej może zawierać lokalną zmienną-inicjator, w tym przypadku zmienna jest uważane za zdecydowanie przypisany w całym jego zakresie, z wyjątkiem przewidzianym w wypowiedzi w lokalnej zmiennej-inicjatora ..

Local variables

jest to poprawna inicjalizacja:

List<DropDownList> _ddlCollection = new List<DropDownList>(); 
1

Wygląda na to, że nie zainicjowałeś _ddlCollection, więc po .Add łamie się.

Należy przypisać _ddlCollection instancję z List<DropDownList>.

_ddlCollection = new List<DropDownList>(); 
Powiązane problemy