2014-11-03 4 views
0

У меня есть довольно стандартная главная страница с ContentPlaceHolder..net форма внутри пользовательского управления теряет значения после обратной передачи

<section class="content" style="height:100%;"> 
    <form id="contentForm" runat="server"> 
     <div class="container" style="background:#fff; border:30px solid #fff; height:80%;"> 
      <div class="row" style="height:100%;"> 
       <section class="span8" role="main" style="height:100%;"> 
        <asp:ContentPlaceHolder Id="MainContent" runat="server" /> 
       </section> 
      </div> 
     </div> 
    </form> 
</section> 

Внутри этого ContentPlaceHolder У меня есть usercontrol, который содержит выпадающий список и текстовое поле.

С тегом from на главной странице, если я изменяю раскрывающийся список, страница отправляется так, как ожидалось, и поля формы сохраняют свои выбранные значения. Теперь мне нужно удалить тег из главной страницы, поскольку это приводит к сбою некоторых других страниц. Я хочу поместить тег формы внутри usercontrol.

<form id="trackingForm" runat="server"> 
<div id="employee" class="statsTable"><strong>Employee:</strong> 
    <asp:DropDownList ID="selectPerson_DDL" runat="server" Width="200" AutoPostBack="true" onselectedindexchanged="selectPerson_DDL_SelectedIndexChanged"></asp:DropDownList> 
</div> 
</form> 

Страница по-прежнему отправляется как раньше, но теперь я теряю выбранное значение в раскрывающемся списке. Я пробовал различные параметры, такие как проверка на page.IsPostBack и т. Д. Я вижу, что ViewState существует после отправки формы.

Почему поведение управления изменяется только потому, что тег формы теперь находится в usercontrol?

+0

вы можете использовать панели обновления, чтобы избежать postbacks –

+0

Я пошел с полной обратной почтой, так как на странице есть несколько элементов управления, которые заполняются на основе этого раскрывающегося списка. Казалось легче в то время. Теперь я могу пожалеть об этом. –

+0

ASP.NET WebForms поддерживает только один элемент FORM с runat = "server" на страницу. Есть ли причина, почему вы должны использовать FORM, не могли бы вы заменить ее на DIV? – sh1rts

ответ

0

размещение вашей формы внутри asp: updatepanel control должен решить проблему.

+0

Как это связано с перемещением тега формы в usercontrol? Моя страница работает только в том случае, если тег формы находится вне пользовательского контроля. –

+0

Пробовал, что он не работает. Форма перезагружается со значением по умолчанию в раскрывающемся списке вместо выбранного значения. –

+0

Вы пробовали настройку AutoPostBack = False для вашего раскрывающегося меню? – aditya

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