2009-07-23 5 views
1

У меня есть ретранслятор, который содержит несколько элементов, и среди них есть DropDownList и кнопка.Выберите элемент DropDownList внутри элемента управления ретранслятора

Целью здесь является связать элемент из DDL с выбранной строкой ретранслятора.

ASPX Код:

<asp:Repeater ID="sharedPlansList" runat="server" 
    onitemdatabound="sharedPlansList_ItemDataBound" 
    onitemcommand="sharedPlansList_ItemCommand"> 
    <ItemTemplate> 
     <div> 
      <h1>&middot; <%# 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 или Ответное исключение (Invalid постбэк или обратный вызов проверка событий аргумента включаемый в конфигурации. или <% @ Page EnableEventValidation = "true"%> на странице. В целях безопасности эта функция проверяет, что аргументы для событий обратной передачи или обратного вызова происходят из серверного элемента управления, который изначально их визуализировал. Если данные действительны и ожидаются, используйте Метод ClientScriptManager.RegisterForEventValidation в для регистрации данных обратной передачи или обратного вызова для проверки.). Но все кажется действительно стандартным без каких-либо экзотических событий. Я не добавляю ничего или элементы управления с помощью javascript.

Я видел решения, в которых вы могли бы поставить <pages enableEventValidation="false" /> в web.config, но я не уверен, что это хорошее решение, так как я хочу, чтобы сохранить встроенную модель безопасности asp.net.

Существует ли какая-либо обстановка?

+0

На самом деле работает CommandArgument/Name? Потому что у меня что-то похожее, и я не могу заставить его работать вообще! Полностью игнорирует аргумент команды. – Sebastian

ответ

0

Я не могу быть уверен, не проверив ваш код немного (что у меня нет времени сделать это на второй раз), но можете ли вы проверить, является ли динамический CommandArgument, назначаемый вашей кнопке, виновником? Если вы его вытащили, ошибка продолжает литься?

Если это так, то вы могли бы попытаться обработать каждую строку в OnItemDataBound обработчик и вызвать

ClientScript.RegisterForEventValidation("associateDomaine", -->CommandArgHere<--); 
+0

Он не связан с ошибкой, так как до добавления CommandArgument: / – Erick

0

Лучшим решением будет заменить DropDownList с вашим собственным DropDownList. Создайте подкласс DropDownList и используйте этот список на странице ASPX. Я думаю, что содержимое вашего DropDownList изменяется на стороне клиента (может быть, Javascript?).

Смежные вопросы