2009-08-28 6 views
0

Je veux peupler la dropdownlist ddVerantwortlich1 avec les personnes avec les informations d'identification appropriées en fonction de l'étape de processus sélectionné ddProzessschritt1ASP.NET renseigner un dropdownlist basé sur l'événement a changé dans un autre menu déroulant

Il ne fonctionne pas si je veux pour le changer en utilisant datasource et databind je dois faire une boucle manuellement dans la table dans l'ensemble de données retourné de la requête. alors ça marche. mais pas autrement ...

Quel est le problème? Voici mon code:

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

À première vue, je ne vois pas le problème. Pouvez-vous élaborer sur le comportement indésirable que vous éprouvez? Que voyez-vous lors du débogage (l'ensemble de données est-il rempli? Le bloc de code qui remplit le DDL est-il exécuté?). – Mayo

+0

S'agit-il d'une application Web (ASP.NET) ou d'une application de bureau (WinForms)? Les postbacks et l'état de loasing peuvent être vos problèmes si c'est une application web. – David

Répondre

1

Pourquoi appelez-vous Dispose sur DropDown? Peut-être que c'est le problème. Essaie!

Questions connexes