Question

J'ai un site Web où l'utilisateur a besoin pour ajouter et supprimer Headlines de la page principale. Les titres sont stockés dans une base de données avec une colonne intitulée « Affichage » (vrai ou faux) qui décide si les titres apparaissent. Je veux que l'utilisateur ait la possibilité d'ajouter ou de supprimer les titres de la page principale, ont donc créé une autre page qui crée une table de tous les titres avec une liste déroulante contenant « Activer » et « désactiver ». Je veux que ces listes déroulantes pour travailler par lorsque l'utilisateur modifie la valeur dans la liste déroulante sera mis à jour la base de données. Seulement je ne peux pas trouver comment donner la liste déroulante des listes sur un événement de changement.

Toutes les idées? Est-ce que je vais sur ce la bonne ou est-il une meilleure façon de le faire?

Était-ce utile?

La solution

Tout d'abord, faire votre demande réelle Vous définissez les menus déroulants pour autopostback et ajouter un gestionnaire pour obtenir la valeur et mettre à jour les données, IE (même si au minimum vos listes déroulantes seraient dans un répéteur, ou DataGrid)

    Private Sub SetupDropdowns()
        Dim pDropDown As New DropDownList
        pDropDown.Items.Add("Yes")
        pDropDown.Items.Add("No")
        pDropDown.AutoPostBack = True
        AddHandler pDropDown.SelectedIndexChanged, AddressOf pDropDown_SelectedIndexChanged
    End Sub

    Private Sub pDropDown_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim value As String = CType(sender, DropDownList).SelectedValue
'Do something with value
    End Sub

Une façon plus facile, si vous accédez à SQL est d'utiliser directement un DataGrid et DataBind à votre requête SQL.

Autres conseils

Tout d'abord; Personnellement, j'utiliser des cases à cocher pour fournir une interface utilisateur pour une valeur true / false. Vous pouvez gérer cela de deux façons: soit vous utilisez les contrôles ASP.NET (). Ou contrôles HTML brut ()

Dans le cas de l'utilisation des contrôles ASP.NET, vous pouvez simplement cliquer deux fois sur le contrôle (en vue de la conception) afin d'avoir un gestionnaire d'événements pour l'événement CheckedChanged à créer pour vous. Dans le cas d'utilisation d'un élément d'entrée HTML, vous devez gérer l'événement onclick du côté client à l'aide JavaScript, et le JavaScript est faire un appel AJAX ou similaire afin que le serveur peut mettre à jour la base de données. Je dirais que l'approche ASP.NET est plus simple.

Très probablement, vous méthode la plus simple pour cela est de simplement utiliser un DataGrid, vous pouvez gérer facilement l'événement.

Comme une alternative, puisque vous faites simplement une option « show » ou « Masquer », vous pouvez simplement utiliser les boutons, ce qui pourrait fournir une meilleure interface utilisateur. (Je trouve cela vrai en raison de défilement accidentel de menu déroulant des éléments de liste avec une souris à molette de défilement dans certains navigateurs)

Dans le code où vous créez vos listes déroulantes, ajoutez ceci:

''// You already have this code...

Dim oDropDown as New DropDown

''// Whatever other declarations you need...

AddHandler oDropDown.SelectedIndexChanged, _ 
AddressOf oDropDown_SelectedIndexChanged

Normalement, vous ajoutez un menu déroulant à votre projet à partir de la boîte à outils, et vous pouvez utiliser le menu déroulant sous CodeView pour sélectionner l'événement SelectedIndexChanged. Nous devons le faire manuellement dans ce cas, afin de créer votre sous-programme:

Public Sub oDropDown_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
    ''// Do whatever you need to do here

    ''// I sometimes do this to make code manipulation easier:
    Dim _sender as DropDown = CType(sender, DropDown)

End Sub

L'espoir qui aide!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top