none
Приоритеты Theme и Skin в элементах управления asp.net RRS feed

  • Вопрос

  • Коллеги, добый день!

    Возник вопрос по темам и обложкам в asp.net. Использую в проекте Тему для оформления страниц и элементов управления. Для всего приложения включаю тему через web.config:

    <pages theme="GreenTheme">

    Имеется также файл *.skin, в котором прописаны определенные аттрибуты для контрола. Также, на странице у определенмя этого контрола заданы некоторые иные аттрибуты, отстутствующие в файле обложки. Небольшой пример:

    //В *.aspx
    <MyUserControl:Control ID="SomeID" runat="server" Width="SomeWidth">
    <MyUserControl:Control>
    //В *.skin
    <MyUserControl:Control runat="server"
    MyAttribute="SomeValue">
    <MyUserControl:Control>

    В документации по приориетам обработки темы и обложек сказано, что при наложении глобальной темы страницы аттрибуты заданные в обложках и декларативно у самого контрола соединяются между собой, а в случае если аттрибут задан и там и там, предпочтение отдается значению из темы. Однако, в моем случае  атрибут Width у контрола затирается из файла обложки, а если быть точнее, обнуляется до значения по умолчанию. Пробовал на стандартных аттрибутал унаследованных от WebControl, получается таже самая ситуация.

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



    11 сентября 2013 г. 6:47

Ответы

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

    <%@ Page Language="C#". . . StyleSheetTheme="" %>
    
    

    тогда основная тема переопределяется.

    "Т.е. это неточность в описании документации, и надо использовать для такого случае не глобальную тему, а StyleSheetTheme, или же я что-то не так делаю в случае применения обложек и глобальной темы?" - на самом деле всё так и есть, но вот все эти возможности с темами и прочими очень запутаны в ASP.NET. Всё это происходит из-за жизненного цикла страницы, так как подключение стилей происходит на разных этапах цикла и одни параметры могут переопределяться другими. Посмотрите данное свойство.


    Сделаем содержимое сообщества лучше, вместе!

    • Предложено в качестве ответа YatajgaModerator 13 сентября 2013 г. 5:32
    • Помечено в качестве ответа Eugene_Olisevich 13 сентября 2013 г. 10:35
    11 сентября 2013 г. 8:25
    Модератор