Это возможно.
Я нашел секретный метод в классе элемента управления, называемый ClearChildState (), это защищенный метод, который очищает состояние представления и состояние управления для всех дочерних элементов управления.
Итак, в моем примере я создал класс, который наследуется от панели
namespace MyControls
{
public class Panel:System.Web.UI.WebControls.Panel
{
public void Reset()
{
ClearChildState();
}
}
}
На моей странице инициализации события я проверяю запрос [флаг] для сброса элемента управления
public partial class Test : System.Web.UI.Page
{
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
if (!string.IsNullOrEmpty(Request["Reset"]) && Request["Reset"] == "1")
{
pnlCreateAccountDialog.Reset();
}
}
}
OnClient сторонау меня есть функция Reset (), которую я могу вызывать всякий раз, когда я хочу, чтобы следующий постбэк загрузил чистый элемент управления
<script type="text/javascript">
function AddReset() {
$('#Reset').val('1');
}
function RemoveReset() {
$('#Reset').val('');
}
</script>