EDIT: Es war DropDownList.Items.Clear();
in einer Methode, wo ich einige Sachen aus db aufgelistet, die das Problem verursacht. Ich verstehe jedoch nicht, warum dies das Problem verursachen würde. Ich würde wirklich schätzen, wenn ich eine Erklärung geben könnte, da ich Items.Clear() wirklich verwenden muss; irgendwieUpdatePanel mit mehreren DropDownList
Ich habe 3 DropDownList
, wo ich ein bestimmtes Etikett je nachdem, welchen Wert ich innerhalb einer dieser 3 DropDownList
auswählen. Jeder DropDownList
funktioniert gut, bis ich den nächsten auswählen, und die anderen vor es wird nicht über UpdatePanel auslösen.
z. Der erste funktioniert, hört aber auf zu arbeiten (das Etikett wird nicht mehr aktualisiert), sobald ich den zweiten benutze. Die zweite funktioniert, aber sobald dritte DropDownList
verwendet wird, funktioniert die zweite nicht, und nur die dritte DropDownList
funktioniert gut.
Das gleiche gilt, wenn ich sofort die dritte, die erste und zweite DropDownList
nicht über UpdatePanel arbeiten.
Mit anderen Worten, sobald die neueste DropDownList
verwendet wird, wird jede DropDownList
vor es nicht über UpdatePanel auslösen.
aspx:
<asp:DropDownList ID="dpl1" runat="server" OnSelectedIndexChanged="dpl1_OnSelectedIndexChanged" AutoPostBack="True" />
<asp:DropDownList ID="dpl2" runat="server" OnSelectedIndexChanged="dpl2_OnSelectedIndexChanged" AutoPostBack="True" />
<asp:DropDownList ID="dpl3" runat="server" OnSelectedIndexChanged="dpl3_OnSelectedIndexChanged" AutoPostBack="True" />
<asp:UpdatePanel runat="server" ID="UpdatePanel" UpdateMode="Conditional" >
<ContentTemplate>
<asp:Label ID="lblDPB" runat="server"/>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="dpl1" EventName="SelectedIndexChanged" />
<asp:AsyncPostBackTrigger ControlID="dpl2" EventName="SelectedIndexChanged" />
<asp:AsyncPostBackTrigger ControlID="dpl3" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
-Code hinter:
protected void dpl1_OnSelectedIndexChanged(object sender, EventArgs e) {
lblDPB.Text = "#1: ";
}
protected void dpl2_OnSelectedIndexChanged(object sender, EventArgs e) {
lblDPB.Text = "#2: ";
}
protected void dpl3_OnSelectedIndexChanged(object sender, EventArgs e)
{
lblDPB.Text = "#3: ";
}
Wie kann ich alle diese drei Werke gleichzeitig machen?
Dank
setzen Ich kann das Problem nicht reproduzieren. Ich sehe die richtige Listennummer, wenn ich irgendeine von ihnen auswähle, in beliebiger Reihenfolge. Ich fülle die Listen in 'Page_Load' (ich weiß nicht, wie deine gefüllt sind). Ist das ein kleiner Teil einer komplizierteren Form? Wenn ja, könnten Sie diesen Teil in einem kleinen Testprojekt testen. Tritt das Problem übrigens auf, wenn Sie 5 Sekunden zwischen Ihren Aktionen warten? – ConnorsFan
@ConnorsFan hmm komisch .. Es funktionierte auch für mich, als ich einfach einige Sachen in Page_Load aufgelistet habe. In meinem Code habe ich einige Werte von db zu dropdownlist über eine Methode hinzugefügt, this.PreRender + = MethodName in Page_Load. Es ist zu viel Code, um hier hinzuzufügen, aber was könnte meinen Code möglicherweise Fehler? Ich habe einfach mit db (mit OleDb) verbunden, Sachen in jede DropDownList hinzugefügt und die Verbindung in diesem "MethodName" geschlossen. Übrigens, ich habe über 5 Sekunden gewartet, immer noch das gleiche Problem. – Nyprez
EDIT: Okay, ich habe das Problem gefunden, am Anfang von "MethodName" habe ich Items.Clear für jede DropDownList bekommen, warum verursacht das das Problem? – Nyprez