Pues con una inspección rápida

, la condición if (String.IsNullOrEmpty(this.depto2.SelectedValue.To String())) siempre dará como resultado false, porque el dropdownlist siempre tendrá un valor. Te sugiero que utilices otra condición como por ejemplo: if(Convert.ToInt32(depto2.SelectedIndex)!=0) o una condición parecida. Desde mi punto de vista puede ser esto. Probalo y nos contas despues.
Una cosa más ¿cómo le agregas el valor 0 al DropDownList? desde el diseño o mediante código (C# o sql)