создать пользовательский элемент управления только с HTML и Jquery - PullRequest
1 голос
/ 05 апреля 2011

У меня есть древовидное представление, созданное только с использованием HTML и Jquery.

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

Заранее спасибо

1 Ответ

0 голосов
/ 05 апреля 2011

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

Но обычно пользовательский элемент управления можно сделать несколькими способами.Если у него нет элементов управления, вы можете включить все ресурсы (HTML и скрипт) как встроенные ресурсы .Элемент управления может на простейшем уровне передавать свои собственные встроенные ресурсы клиенту в методе Render.

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

Лучший способ - обслуживать встроенные ресурсы с использованием WebResource.axd. Вот статья , в которой объясняется, как это сделать.

Лично я считаю WebResource и вложенные ресурсы огромной болью в шее.Вам необходимо поддерживать AssemblyInfo.cs в синхронизации с ресурсами, и соглашения о именах и пространствах имен всегда кажутся невероятно трудными для получения правильных результатов.Я обнаружил, что гораздо проще просто представить статический метод пользовательского элемента управления, например:

public static Stream GetEmbeddedResource(someResourceIdentifier, out string mimeType) {
  /// return a stream of my own embedded resource ... can be used for anything
  /// css, js, html
}

, а затем просто создать собственный веб-обработчик для использования в качестве загрузчика ресурсов и потокового содержимого.Это намного проще, и вы также не получите WebResource.axd включений с 200-символьными строками запроса.

...