2014-02-08 5 views
0

У меня есть два спуска, где у обоих из них есть автоповтор. , в то время как я выбираю из dropdown1, он отправляет dropdown2 id, а dropdown2 показывает данные, соответствующие этому id. , но проблема заключается в том, что он не отображается, когда страница запускается в первый раз и всегда отображается предыдущее выбранное значение.как принять выбранное значение Dropdownlist?

нравится, когда страница загружается, выбирая «sayd» в dropdown1 автоматически. И для этого выбирая соответствующее имя в другом dropdown2.but, когда я запускаю приложение, оно не отображает выбранное значение для значения по умолчанию. и когда я выбираю вручную. показывает предыдущее выбранное значение.

Я не знаю, почему это происходит и какие решения для этого могут предложить любые, пожалуйста?

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { 
      ddwcategory.DataBind(); 
      ddwsubcat.DataBind(); 
    } 
    else 
    { 
      if (ddwsubcat.Items.Count <= 1) 
      { 
       ddwsubcat.SelectedIndex = -1; 
       ddwsubcat.DataBind(); 
      } 
      Label1.Text = ddwsubcat.SelectedValue; 
    } 
} 
+0

Оберните свой код внутри страницы. Загрузите событие внутри a if (! Page.IsPostBack) {// ваш код}. Это может происходить, так как код страницыLoad выполняется при каждом обратном вызове –

+0

Никто не помогает, когда я делаю это, так как u сказал, что он хорошо показывает, когда загружается страница. Если я перехожу в другую категорию, где есть только одна субкатегория, это не показывает ее . и снова, когда я перехожу на другой, его атарты показывают предыдущий –

+0

Вы пытались указать индекс по умолчанию dropdowlist, например yourDropDownList.SelectedIndex = -1; Это всегда будет выбирать 1-й элемент. –

ответ

0

То, что сделал работу.

if (!Page.IsPostBack) 
    { 

     ddwcategory.DataBind(); 
     ddwsubcat.DataBind(); 

    } 
    else 
    { 
     if (ddwsubcat.Items.Count <= 1) 
     { 
      ddwsubcat.SelectedIndex = -1; 
      ddwsubcat.DataBind(); 
     } 
     // Label1.Text = ddwsubcat.SelectedValue; 
     //ddwsubcat.DataBind(); 
    } 
    String subcat = ddwsubcat.SelectedValue; 
0

Кажется, это проблема PostBack. Я бы предложил вам связать ваш первый DropDownList, проверив IsPostBack на Загрузка страницы.

Кроме того, отлаживайте свой код и проверяйте каждый тестовый пример, как вы объяснили. Отметьте, какие события и функции выполняются и какие значения добавляются к DropDownLists.

0

Добавить Postback состояние в вас Page_Load Метод:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if(!Page.IsPostback) 
    { 
     //fill dropdown mehtod 
    } 
} 
0

Часть вашего кода была за пределами !PostBack состояние.

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { 
      // Bind your dropdownlists on page Load event 
      ddwcategory.DataBind(); 
      ddwsubcat.DataBind(); 
      // Set default index if required 

      Label1.Text = ddwsubcat.SelectedValue; 
    } 
} 
Смежные вопросы