Создание составного элемента управления с функцией клиента - PullRequest
2 голосов
/ 07 ноября 2010

Я хочу разработать составной элемент управления, где часть работы будет выполняться на стороне клиента. Для этого я реализую IScriptControl.

ScriptReference указывает на файл сценария с клиентским объектом.

Допустим, я хочу, чтобы он имел элемент управления Listview (выбор HTML), чтобы onselect запускал функцию javascript на основе выбранного значения.

Я не могу просто создать элемент управления динамически, это клиент js, потому что элемент управления имеет пользовательский интерфейс в режиме разработки, поэтому я должен создать элемент управления select на стороне сервера (я создаю его в override void Render)

Моя проблема, как и где назначить событие onselect для выбора.

Обновление:
Может быть, мне следует добавить идентификатор select как свойство в ScriptControlDescriptor, а затем в клиентском контроле получить этот идентификатор и присоединить нужный обработчик к событию?

Ответы [ 3 ]

1 голос
/ 07 ноября 2010

Используя коллекцию Атрибутов объекта, вы можете добавить атрибут onselect по вашему желанию.Просто позвоните HtmlSelect.Attributes.Add("onselect", "functionYouWantToCall();");

Чтобы уточнить, если HTML Select создается во время рендеринга на стороне сервера в C #, то строка выше используется для регистрации события onselect на стороне клиента для вызова functionYouWantToCall() javaметод сценария.

Существует множество способов добавить функции javascript на страницу ASP.NET во время выполнения или включить статический файл JS.Для этого загляните в документы здесь .

На странице ASPX или нет, после добавления на страницу элемент управления может получить доступ к свойству страницы, что даст вам доступ к странице иследовательно, свойство ClientScript.

Аналогично, вы можете встраивать файлы JS в DLL и автоматически обслуживать их в IIS, используя ClientScript.RegisterClientScriptResource метод.

0 голосов
/ 07 ноября 2010

Подобная тема обсуждается здесь .. попробуйте, если вы заинтересованы http://able2know.org/topic/2802-1

0 голосов
/ 07 ноября 2010

Почему бы вашему контролю не создать javascript и не иметь регистр управления? Вот ссылка, которую я поместил в комментариях. Это называется внедрение клиентского скрипта из серверного элемента управления ASP.NET - http://msdn.microsoft.com/en-us/library/aa478975.aspx

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