Регистрация запуска скрипта управления - PullRequest
1 голос
/ 28 ноября 2008

Я пытаюсь создать веб-элемент управления, где я могу зарегистрировать клиентские сценарии запуска, встроенные в мой aspx, потому что я ненавижу регистрироваться в коде!

Пример того, что у меня пока есть:

var form = document.getElementById ("<% = form1.ClientID%>");

</ Ben: StartupScript>

В настоящее время я переопределяю метод элемента управления OnPreRender, отображая содержимое элемента управления в строку, а затем вручную регистрируя эту строку в качестве сценария запуска, используя ClientScript.RegisterStartupScript на странице. Я также переопределяю метод Render, чтобы не отображать элемент управления. Следует также отметить, что для атрибута ParseChildren установлено значение false, а для атрибута PersistChildren установлено значение true.

Кажется, все работает хорошо, но мой элемент управления позволяет использовать другие веб-элементы управления (например, Button). Помимо неинтуитивности, это может привести к ошибкам во время выполнения. Я хотел бы иметь возможность очистить элементы управления, но это невозможно, учитывая кодовый блок <% ...%>.

Итак, можно ли запретить разработчикам встраивать дочерние элементы управления, хотя по-прежнему разрешать кодовые блоки?

Кроме того, хороша ли эта идея или она в корне ошибочна? лол.

Спасибо большое,

Ben

Ответы [ 2 ]

1 голос
/ 28 ноября 2008

это звучит как хорошая идея, но если вы тратите слишком много времени на борьбу с унаследованным поведением / поведением по умолчанию, тогда может возникнуть больше проблем, чем стоит

если это проблема с одним выстрелом, дешевое решение - просто встроить ваши скрипты в заголовок главной страницы; -)

с другой стороны, позволяя разработчикам встраивать свои собственные сценарии в качестве дочерних элементов вашего веб-элемента управления, может быть полезным

0 голосов
/ 01 декабря 2008

Если вы используете главные страницы, добавьте еще один элемент управления в свой раздел. Таким образом, вы можете легко добавлять css / js в заголовки своих дочерних страниц.

ClientScript.RegisterScript в основном для пользовательских / серверных элементов управления,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...