Méthode pour empêcher la liste déroulante de dupliquer des éléments dans ASP.NET VB.NET
P粉299174094
P粉299174094 2023-09-07 09:26:11
0
1
532

Public Sub Table()      
    Dim Connection As MySqlConnection

    Dim DataAdapter As MySqlDataAdapter
    Dim Command As MySqlCommand
    Connection = New MySqlConnection("server=localhost; userid=root; database=setting;")
    Command = New MySqlCommand("Select * FROM table", 
    Connection)
    DataAdapter = New MySqlDataAdapter(Command)
    Dim DataTable As New DataSet
    DataAdapter.Fill(DataTable)
    Ddlname.DataSource = DataTable
    Ddlname.DataTextField = "Name"
    Ddlname.DataValueField = "Name"
    Ddlname.DataBind()
End Sub

P粉299174094
P粉299174094

répondre à tous(1)
P粉883973481

Vous n'affichez pas votre balisage, mais rappelez-vous que tout clic sur un bouton, tout contrôle avec publication automatique ou tout événement déclenché sur la page réexécutera l'événement de chargement de page.

Donc, en théorie, même un simple clic sur un bouton peut réexécuter le code qui charge la liste déroulante. Ainsi, chaque événement, chaque clic peut ajouter ou charger à nouveau la liste déroulante.

Par conséquent, le modèle de conception de presque chaque page consiste à charger les grilles, les zones de liste, les zones déroulantes, etc.

Votre code devrait donc ressembler à ceci :

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Not IsPostBack Then
        LoadTable()
    End If
End Sub


Public Sub LoadTable()

    Using Connection As New MySqlConnection("server=localhost; userid=root; database=setting;")

        Using Command As New MySqlCommand("SELECT * from table", Connection)
            Connection.Open
            Dim MyTable As New DataTable
            MyTable.Load(Command.ExecuteReader)
            Ddlname.DataSource = DataTable
            Ddlname.DataTextField = "Name"
            Ddlname.DataValueField = "Name"
            Ddlname.DataBind()
        End Using
    End Using

End Sub

Assurez-vous donc que le code de chargement de votre page contient le très important If Not IsPostBack afin que vous ne chargiez et n'exécutiez qu'une seule fois le code qui charge la liste déroulante.

Donc, ce test "est une publication" ? 99% de vos pages fonctionneront de cette façon. Je pense souvent que les pages asp.net devraient avoir un événement "firstLoad" car il se déclenche à chaque chargement de la page, et cela est vrai pour tous les boutons et tout code qui déclenche les publications de pages. Par conséquent, votre liste déroulante se chargera (et grandira) encore et encore car vous exécutez le code qui charge la grille, la liste déroulante ou la liste déroulante à chaque fois que vous chargez la page. Alors adoptez, utilisez et « aimez » le test IsPostBack – vous le faites pour toutes vos pages, et 99 % ou plus d’entre elles l’exigent.

En fait, il est presque impossible de créer une page Web fonctionnelle si vous n’appliquez pas les suggestions ci-dessus.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal