Запретить очистку дочерних элементов управления в составном элементе управления
У меня есть собственный серверный элемент управления, который выглядит так:
<myLib:MyControl id="myid" runat="server">
<controls>
<asp:Textbox id="TxtTest" runat="server" />
<asp:Button id="cmdTest" runat="server" />
</controls>
</myLib:MyControl>
свойство control выглядит следующим образом:
[PersistenceMode(PersistenceMode.InnerProperty)]
public List<Control> controls { get; set; }
По причинам, которые я не совсем понимаю, если я запускаю обратную передачу, щелкая cmdTest, значение txtTest стирается в обработчике событий для нажатия кнопки. У кого-нибудь есть идеи о том, где это может происходить? Спасибо
1 ответ
Для любого, кто может наткнуться на это в будущем, проблема, с которой я столкнулся, заключалась только в текстовых полях и других входных данных, значение которых могло бы быть изменено во время страницы, находящейся на клиенте. Проблема заключалась в том, что (из-за неоправданно сложного дизайна) я перемещал некоторые дочерние элементы управления в тело документа после загрузки страницы. Это приводило к тому, что они не находились в форме, когда она была отправлена, и значения не сохранялись.