Ich habe einen Repeater, der ein paar Elemente enthält und unter ihnen gibt es eine DropDownList und eine Schaltfläche.Wählen DropDownList Element innerhalb eines Repeater-Steuerelement
Ziel ist es, der ausgewählten Repeaterzeile einen Eintrag aus der DDL zuzuordnen.
ASPX Code:
<asp:Repeater ID="sharedPlansList" runat="server"
onitemdatabound="sharedPlansList_ItemDataBound"
onitemcommand="sharedPlansList_ItemCommand">
<ItemTemplate>
<div>
<h1>· <%# Eval("ProductName") %></h1>
<div>
Associer le domaine :
<asp:DropDownList runat="server" ID="domainList" />
<asp:Button ID="associateDomaine" Text="Associer" runat="server"
CommandArgument='<%# Container.DataItem %>' />
</div>
<div>
Domaines :
<asp:BulletedList runat="server" ID="sharedPlanDomains" />
</div>
</div>
</ItemTemplate>
</asp:Repeater>
Das Problem:
Wenn ich auf die Schaltfläche klicken ich jedes Mal habe eine ungültige Postback oder Callback-Ausnahme (Ungültige Postback oder Callback-Argument Ereignisvalidierung wird in der Konfiguration aktiviert werden. oder <% @ Page EnableEventValidation = "true"%> auf einer Seite Aus Sicherheitsgründen überprüft diese Funktion, ob Argumente für Postback- oder Callback-Ereignisse vom Serversteuerelement stammen, das sie ursprünglich gerendert hat. Wenn die Daten gültig und erwartet sind, verwenden Sie die ClientScriptManager.RegisterForEventValidation-Methode in um die Postback- oder Callback-Daten für die Validierung zu registrieren.). Aber alles scheint wirklich Standard ohne etwas wirklich Exotisches. Ich füge auch nichts hinzu oder steuere per Javascript.
Ich habe Lösungen gesehen, wo Sie <pages enableEventValidation="false" />
in die web.config
setzen konnten, aber ich bin mir nicht sicher, es ist eine gute Lösung, da ich sicherstellen möchte, dass das asp.net integrierte Sicherheitsmodell.
Gibt es einen Workaround?
Funktioniert das CommandArgument/Name tatsächlich? Weil ich etwas ähnliches habe und ich kann es nicht funktionieren lassen! Ignoriert das Befehlsargument vollständig. – Sebastian