Сергей Тяпкин (tyaps) wrote in tyaps_asp,
Сергей Тяпкин
tyaps
tyaps_asp

GetWebResourceUrl для Javascript и CSS

Допустим, мы хотим иметь свой веб-контрол (не ascx, а контрол, унаследованный, скажем от ListBox),
который использует отдельные .js и .css. И мы не хотим зависеть от страницы, в которой этот контрол будет помещен в плане наличия
< script src= > .

Мы можем внедрить .js и .css (ресурсы) в сборку с нашим контролом.

Вот я делал некий MultiSelect (на основе ui.dropdownchecklist.js)

Имеем .cs файл

[assembly: WebResource("MyProj.Controls.MultiSelect.js", "text/javascript")]
[assembly: WebResource("MyProj.Controls.MultiSelect.css", "text/javascript")]
namespace MyProj.Controls
{

public class MultiSelect : ListBox
{...


protected override void OnInit(EventArgs e)
{
base.OnInit(e);

//Сделать ссылку на .js

Page.ClientScript.RegisterClientScriptInclude("MultiSelect",
Page.ClientScript.GetWebResourceUrl(GetType(), "MyProj.Controls.MultiSelect.js"));

//Сделать ссылку на .css

HtmlLink link = new HtmlLink();
link.Href = Page.ClientScript.GetWebResourceUrl(GetType(), "MyProj.Controls.MultiSelect.css");
link.Attributes.Add("rel", "stylesheet");
link.Attributes.Add("type", "text/css");
Page.Header.Controls.Add(link);


...

}

рядом имеем файлы

MultiSelect.js
MultiSelect.css

Важно! Чтобы в свойствах файлов MultiSelect.js и MultiSelect.css "Build Action" стоял в "Embedded Resource", а не "Content" - иногда об этом забывают.

И теперь, чтоб оно работало достаточно просто засадить свой контрол, типа

и не вспоминать, какие js и css нужны для корректного отображения и работы.

Ну, для общего порядка можно http://msdn.microsoft.com/ru-ru/library/system.web.ui.clientscriptmanager.getwebresourceurl.aspx почитать
Tags: asp.net, css, javascript
Subscribe
  • Post a new comment

    Error

    default userpic
    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 2 comments