У меня есть повторитель, который содержит несколько элементов, среди которых есть DropDownList и Button.
Цель здесь - связать элемент из DDL с выбранной строкой повторителя.
Код ASPX:
<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>
Проблема:
Когда я нажимаю кнопку, я каждый раз получаю исключение Invalid Postback или Callback (Недействительный аргумент обратной передачи или обратного вызова. Проверка события включена с помощью конфигурации или ‹% @ Page EnableEventValidation =" true "%> на странице. В целях безопасности это функция проверяет, что аргументы для событий обратной передачи или обратного вызова исходят от серверного элемента управления, который их изначально визуализировал. Если данные действительны и ожидаются, используйте метод ClientScriptManager.RegisterForEventValidation, чтобы зарегистрировать данные обратной передачи или обратного вызова для проверки.). Но все кажется действительно стандартным, без чего-то действительно экзотического. Я тоже ничего не добавляю и не добавляю с помощью javascript.
Я видел решения, в которых вы могли бы поместить <pages enableEventValidation="false" />
в web.config
, но я не уверен, что это хорошее решение, так как я хочу сохранить встроенную модель безопасности asp.net.
Есть ли обходной путь?