Отправка одного UpdatePanel очищает ввод флажка в другом UpdatePanel?

У меня есть два флажка на панели обновлений. Один из них представляет собой элемент управления ASP.NET CheckBox, а другой — просто элемент HTML <input>. У меня есть кнопка на другой панели обновлений.

Итак, вот соответствующая часть страницы:

<asp:UpdatePanel runat="server" ID="UpdatePanel1">
    <ContentTemplate>
        <input type="checkbox" id="check1" name="check1" />HTML Input<br />
        <asp:CheckBox runat="server" ID="check2" Text="ASP CheckBox"></asp:CheckBox><br />
    </ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel runat="server" ID="UpdatePanel2">
    <ContentTemplate>
    <asp:Button runat="server" ID="Submit" Text="Submit" OnClick="Submit_Click" />
    </ContentTemplate>
</asp:UpdatePanel>

Я устанавливаю оба флажка, затем нажимаю кнопку. Что я вижу, так это то, что галочка исчезает из того, что является просто HTML, но галочка все еще существует для элемента управления CheckBox.

Почему? Я бы подумал, что ничего в первой панели обновлений не изменится, потому что я делаю частичную обратную передачу второй панели обновлений.

Если я уберу два флажка за пределы панели обновлений, то оба сохранят свои галочки (как я и ожидал).


person Tim Goodman    schedule 27.10.2011    source источник
comment
Ответ Митчела Селлерса объясняет это. Я добавлю, что меня не должно было удивлять, что элемент управления CheckBox ведет себя иначе, чем элемент ввода (хотя они оба отображаются как элементы ввода). Страница будет начинаться со своих значений по умолчанию каждый раз в течение жизненного цикла страницы, но CheckBox будет восстанавливать опубликованное значение в своем методе LoadPostData.   -  person Tim Goodman    schedule 27.10.2011


Ответы (1)


Я предполагаю, что ваши панели обновлений должны быть настроены так, чтобы обновлялась ТОЛЬКО панель обновлений, которая фактически используется. При обновлении UpdatePanel2 обновляются обе панели. Я считаю, что если вы установите свойство UpdateMode="Conditional" в UpdatePanel1, вы получите желаемый эффект.

Вы можете просмотреть эту документацию MSDN в UpdateMode имущество.

person Mitchel Sellers    schedule 27.10.2011
comment
Это объясняет, спасибо. Наверное, я думал, что поведение, которое вы получаете от UpdateMode=Conditional, было по умолчанию, но это не так. - person Tim Goodman; 27.10.2011