Запретить очистку дочерних элементов управления в составном элементе управления

У меня есть собственный серверный элемент управления, который выглядит так:

<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 ответ

Для любого, кто может наткнуться на это в будущем, проблема, с которой я столкнулся, заключалась только в текстовых полях и других входных данных, значение которых могло бы быть изменено во время страницы, находящейся на клиенте. Проблема заключалась в том, что (из-за неоправданно сложного дизайна) я перемещал некоторые дочерние элементы управления в тело документа после загрузки страницы. Это приводило к тому, что они не находились в форме, когда она была отправлена, и значения не сохранялись.

Другие вопросы по тегам