2009-11-02 7 views
0

Bonjour à tous! Moi-même et un collègue sont chargés d'une solution de script à l'échelle du système, mais aucun de nous n'est programmeur .NET, nous avons donc besoin de votre aide.Déroulement dynamique basé sur la sélection Radio

Nous avons une interface graphique qui affiche une boîte de sélection radio (3 options) qui sont les trois sites où se trouvent nos hôpitaux. Nous avons besoin de liste déroulante située sur le formulaire à remplir avec seulement les emplacements en fonction de l'option radio sélectionnée.

my gui http://web6.twitpic.com/img/40330741-85d91a5637f2445b322e62df17cf3351.4aef01c5-full.jpg

Voici le code derrière nous avons jusqu'à présent (désolé, VB)

Public Class frmCEHLI 

Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click 

End Sub 

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    'TODO: This line of code loads data into the 'CELocDataSet.dbo_Locations' table. You can move, or remove it, as needed. 
    Me.Dbo_LocationsTableAdapter.Fill(Me.CELocDataSet.dbo_Locations) 

End Sub 

Private Sub btnSubmit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSubmit.Click 


    MsgBox("Submit button has been pressed") 

End Sub 
End Class 

Pour mémoire le menu déroulant emplacement est actuellement DataBound mais son une instruction SELECT statique qui nous amène tous les emplacements, mais nous préférerions qu'il soit plus propre s'il ne renvoyait que les emplacements basés sur le site. Nous utilisons Visual Basic 2008 Express Edition pour le développement. Toute aide/code est apprécié, merci!

Répondre

1

Désolé de ne pas répondre plus tôt, occupé, et voulu déterrer un échantillon qui a fait exactement ce dont vous aviez besoin.

Créez deux zones de liste déroulante sur votre formulaire. Vous pouvez lier des valeurs fixes ou à partir d'une table sur le premier combo. Ensuite, à partir de la feuille de propriétés/événements, définissez d'abord "AutoPostBack" sur TRUE, puis sur les événements, cliquez sur l'événement "SelectedIndexChanged" pour faire apparaître du code. Le paramètre de l'objet "Sender" sera la liste déroulante elle-même, vous pourrez donc analyser les paramètres de propriété par débogage pour trouver quelle clé/valeur a été choisie. Puis, exécutez n'importe quelle requête à partir de votre contrôle d'interrogation de données, objet métier ou tout ce qui obtient vos résultats, par exemple à un DataSet ou DataTable.

Enfin, définissez la source de données de votre deuxième liste déroulante sur la requête de résultat ci-dessus, définissez dataTextField et DataValueField et envoyez DataBind() à la liste déroulante.

Cela devrait obtenir exactement ce dont vous avez besoin.

Ensuite, lorsque quelqu'un effectue une sélection à partir du second combo, vous pouvez avoir du code dans son événement "SelectedIndexChanged" (également basé sur son bouton AutoPostBack ou le bouton "submit" du formulaire).

Espérons que cela aide.

+0

Génial, merci beaucoup! – SQLChicken

0

Je voudrais créer deux contrôles de zone de liste déroulante ... Un pour le "où", puis, sur l'événement InteractiveChange par l'utilisateur de post-retour à la page en utilisant cette réponse pour la deuxième liste d'emplacements basée sur le "valeur du premier combo.

+0

Merci. C'était en fait notre solution d'origine mais nous ne pouvions pas comprendre comment programmer le code dynamique qui ferait que la deuxième zone de liste modifiable changerait ses valeurs en fonction de la sélection de la première boîte. – SQLChicken

Questions connexes