2009-08-28 1 views
0

Я хочу, чтобы заполнить DROPDOWNLIST ddVerantwortlich1 с людьми, с соответствующими учетными данными на основе выбранного шага процесса ddProzessschritt1ASP.NET заселить DropDownList на основе измененного события в другом выпадающем списке

Это не работает, если я хочу для его изменения с использованием источника данных и databind Мне нужно вручную прокрутить таблицу в наборе данных, возвращенном из запроса. то это работает. но не иначе ...

В чем проблема? Здесь мой код:

Protected Sub ddProzessschritt1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddProzessschritt1.SelectedIndexChanged 
    'StefanSteiger.Debug.MsgBox("index changed!") 

    Dim dsProcessResponsibleDataSet As Data.DataSet = New DataSet 
    Dim strSQL As String = "SELECT BE_ID, (BE_Name + ' ' +BE_Vorname) as UserName FROM T_Benutzer WHERE BE_ID IN " 
    strSQL += "(SELECT BEBG_BE FROM T_Benutzer_Benutzergruppen WHERE BEBG_BG IN " 
    strSQL += "(SELECT ZO_BG_ID FROM T_DMS_ZO_Prozesse_Berechtigungen WHERE ZO_PROC_UID = '" + ddProzessschritt1.SelectedValue.ToString + "')) ORDER BY UserName" 

    If StefanSteiger.DBcmds.GetDataSet(strSQL, dsProcessResponsibleDataSet) > 0 Then 
     Me.ddVerantwortlich1.Items.Clear() 
     For Each row As Data.DataRow In dsProcessResponsibleDataSet.Tables(0).Rows 
      'StefanSteiger.Debug.MsgBox(row("UserName").ToString + " ¦ " + row("BE_ID").ToString) 
      ddVerantwortlich1.Items.Add(New ListItem(row("UserName"), row("BE_ID"))) 
     Next 
     'Me.ddVerantwortlich1.Dispose() 
     'Me.ddProzessschritt1.DataSource = dsProcessResponsibleDataSet.Tables(0) 
     'Me.ddVerantwortlich1.DataTextField = "UserName" 
     'Me.ddVerantwortlich1.DataValueField = "BE_ID" 
     'Me.ddVerantwortlich1.DataBind() 
    Else 
     'Me.ddProzessschritt1.Dispose() 
     ddVerantwortlich1.Items.Add(New ListItem("Niemand verantwortlich.", Nothing)) 
    End If 
End Sub 
+0

На первый взгляд я не вижу проблемы. Можете ли вы рассказать о нежелательном поведении, которое вы испытываете? Что вы видите при отладке (заполняется ли набор данных?) - это блок кода, который заполняет DDL?). – Mayo

+0

Это веб-приложение (ASP.NET) или настольное приложение (WinForms)? Postbacks и непристойное состояние могут быть вашими проблемами, если это веб-приложение. – David

ответ

1

Почему вы вызываете Dispose на DropDown? Может, в этом и проблема. Попробуй!