вторник, 19 января 2010 г.

Telerik ComboBox:- creating custom style

Recently I had a task to edit telerik ComboBox. The problem was that after increasing height of ComboBox, the size of one exeedes sprite area size, and it was needed to style control according to site color scheme.

Assume that we have a page with RadComboBox on it.
First of all set EnabledEmbeddedSkins property to false.
  • Create in App_Themes, a folder named MySkin.
  • Copy from ..\\RadControls for ASP.NET AJAX Q2 2009\Skins\Default a file ComboBox.Default.css and folder ComboBox with the sprites inside it to ..\App_Themes\MySkin. Now we have the next structure:
  • Replace file name ComboBox.Default.css with ComboBox.MySkin.css
  • Replace file name ComboBox.Default.css with ComboBox.MySkin.css
  • Inside style file replace all _Default, with _MySkin. For example:
    .RadComboBox_Default *
    {
     margin: 0;
     padding: 0;
    }
    .RadComboBox_Default,
    .RadComboBox_Default .rcbInput,
    .RadComboBoxDropDown_Default
    {
     font: 12px "Segoe UI", Arial, sans-serif;
     color: #333;
     text-align: left;
    }
     
    And after replacing:
    .RadComboBox_MySkin *
    {
     margin: 0;
     padding: 0;
    }
    
    .RadComboBox_MySkin,
    .RadComboBox_MySkin .rcbInput,
    .RadComboBoxDropDown_MySkin
    {
     font: 12px "Segoe UI", Arial, sans-serif;
     color: #333;
     text-align: left;
    }
    
  • Bind style to the page:
  • Write Combobox skink as skin="MySkin"
  • Done!

суббота, 9 января 2010 г.

Проблема с путями к js-скриптам на Master Page

На Master Page были прописаны пути к *.js файлам. Все работало до того момента, пока не появились контент-страницы, использующие эту Master Page и лежащие во вложенных директориях. Так вот, эти контент-страницы просто не видели .*js файлы.

Одним из решений оказалось удалить пути к скриптам с Master Page, а в событии Page_Load прописать следующее:

protected void Page_Load(object sender, EventArgs e)
{
    HtmlGenericControl js = new HtmlGenericControl();
    js.TagName = "script";
    js.Attributes.Add("type", "text/javascript");
    js.Attributes.Add("language", "javascript");
    js.Attributes.Add("src", ResolveUrl("~js/myscript.js"));
    this.Page.Header.Controls.Add(js);
}

Кто какие решения еще предложит?