Ich habe eine Dropdown-Liste und ein Textfeld mit einer Schaltfläche auf einem Formular. Wenn eine Schaltfläche angeklickt wird, geht sie nicht auf meinen Onclick, auch nicht in den Code, sondern auf das selectedIndexchanged-Ereignis meiner Dropdown-Liste. Wie kann ich das beheben?Wenn ich auf eine Schaltfläche auf dem Formular klicke ... Mein Code erreicht nie seine onclick-Ereignis
Antwort
Gibt es in Ihrem Page_Load den ausgewählten Index oder die Elemente in der Dropdownlist zu ändernden außerhalb der Kontrolle eines Anrufs haben für Postback?
Eigentlich sind Sie sehr nah dran, Recht zu haben. Großartige Idee. Es wird jedoch nicht beim Laden der Seite ausgeführt, sondern beim Ereignis Page_SaveStatecomplete. DropDownList1.Items.Insert (0, "Select a Vendor") DropDownList1.SelectedIndex = 0 Wie kann ich dies ohne dieses Problem tun? – Eric
interessant, auf http://msdn.microsoft.com/en-us/library/ms178472.aspx heißt es, "SaveStateComplete - Bevor dieses Ereignis auftritt, ViewState wurde für die Seite und für alle Kontrollen gespeichert. Alle Änderungen an der Die Seite oder die Steuerelemente an diesem Punkt werden ignoriert. Verwenden Sie dieses Ereignis, um Aufgaben auszuführen, für die der Ansichtszustand gespeichert werden muss, die jedoch keine Änderungen an den Steuerelementen vornehmen. " Ist dies wirklich, wo Sie den Standardanbieter hinzufügen sollten. Sie sollten es wahrscheinlich in Page_Load auf einem Nicht-Postback hinzufügen (das erste Mal, wenn die Seite ausgeführt wird). Verwenden Sie auch "" als Wert für die erforderliche Feldvalidierung. – blu
Ich dachte das auch, aber aus irgendeinem Grund kann ich keinen Standard auf Page_Load hinzufügen. Vielleicht, weil die Daten von einer Datenquelle stammen? – Eric
Stellen Sie sicher, dass der Event-Handler das richtige Steuerelement verarbeitet, oder das Button-Tag verweist auf die richtige Methode auf seinem onclick-Element.
Ich bin nicht eine Person VB.net, sondern versuchen, Ihre asp zu ändern: Taste, um diese:
<asp:Button id="btnlookup" Height="24px" Text="LookUp" Width="60px"
OnClick="btnlookup_Click" runat="server"/>
Warum wurde das heruntergeregelt, wenn dies ein merklicher Fehler ist, den das OP in seinem Code hat: Er hat btnlookup_Click = "btnlookup_Click" anstelle von OnClick = "btnlookup_Click" – TStamper
danke, dass du den Downvote zurückgenommen hast. versuchen Sie, eine Antwort genau zu betrachten, bevor Sie sie ablehnen – TStamper
Wenn Ihre Dropdown-Liste nicht auf Autopostback eingestellt ist und Sie den Wert ändern, bevor Sie auf die Schaltfläche klicken (und ein Postback auslösen), wird das Onchange-Ereignis des Dropdown-Menüs ausgelöst.
... nicht, dass dies erklärt, warum Sie klicken Sie auf Handler ist nicht feuern.
Autopostback für das Dropdown wird auf True festgelegt. – Eric
Konnten Sie etwas Code bekannt geben? Insbesondere der Teil Ihrer ASPX-Seite, auf dem sich die Steuerelemente befinden, und der Teil des Codebehinds/Codebeside, in dem die beiden Methoden (button_click und dropdownlist_selectedindexverändert) deklariert sind. –
Ein Code wäre hilfreich. Im Moment könnte es viele verschiedene Probleme geben. – Tony
ja. Das ist ein Asp-Knopf. – Eric