Я пытаюсь создать веб-элемент управления, где я могу зарегистрировать клиентские сценарии запуска, встроенные в мой aspx, потому что я ненавижу регистрироваться в коде!
Пример того, что у меня пока есть:
var form = document.getElementById ("<% = form1.ClientID%>");
</ Ben: StartupScript>
В настоящее время я переопределяю метод элемента управления OnPreRender, отображая содержимое элемента управления в строку, а затем вручную регистрируя эту строку в качестве сценария запуска, используя ClientScript.RegisterStartupScript на странице. Я также переопределяю метод Render, чтобы не отображать элемент управления. Следует также отметить, что для атрибута ParseChildren установлено значение false, а для атрибута PersistChildren установлено значение true.
Кажется, все работает хорошо, но мой элемент управления позволяет использовать другие веб-элементы управления (например, Button). Помимо неинтуитивности, это может привести к ошибкам во время выполнения. Я хотел бы иметь возможность очистить элементы управления, но это невозможно, учитывая кодовый блок <% ...%>.
Итак, можно ли запретить разработчикам встраивать дочерние элементы управления, хотя по-прежнему разрешать кодовые блоки?
Кроме того, хороша ли эта идея или она в корне ошибочна? лол.
Спасибо большое,
Ben