На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> Вот прям даже по учебнику не получается сделать , Собственный контрол.
    что делаю:
    создаю контрол -
    ExpandedWrap disabled
      Imports System.Web.UI
      Namespace MyControls
       
          Public MustInherit Class WebMenu
              Inherits Control
       
              Public Structure Menu '
                  Public Name As String
                  Public Url As String
                  Public SubName() As String
                  Public SubUrl() As String
              End Structure
              Public MenuItem() As Menu
       
       
              Protected Overrides Sub Render(writer As System.Web.UI.HtmlTextWriter)
                  writer.RenderBeginTag(HtmlTextWriterTag.Ul) ' Тег меню
                  writer.WriteAttribute("id", "Menu")
                  ' Генерируем пункты меню (li)
                  For F = 0 To MenuItem.Length - 1
                      writer.RenderBeginTag(HtmlTextWriterTag.Li)
                      writer.RenderBeginTag(HtmlTextWriterTag.A) ' тег а
                      writer.WriteAttribute("href", MenuItem(F).Url)
                      writer.RenderEndTag() ' закрытие тега а
                      If Not (MenuItem(F).SubName.Length = 0) Then
                          writer.RenderBeginTag(HtmlTextWriterTag.Ul)
                          For E = 0 To MenuItem(F).SubName.Length - 1
                              writer.RenderBeginTag(HtmlTextWriterTag.Li)
                              writer.RenderBeginTag(HtmlTextWriterTag.A) ' тег а
                              writer.WriteAttribute("href", MenuItem(F).SubUrl(E))
                              writer.RenderEndTag() ' закрытие тега а
                              writer.RenderEndTag() ' закрытие тега li
                          Next
                          writer.RenderEndTag() ' ' закрытие тега UL
                      End If
                      writer.RenderEndTag() ' закрытие тега li
                  Next
                  writer.RenderEndTag() ' закрытие тега UL
                  MyBase.Render(writer)
              End Sub
          End Class
      End Namespace

    Подключаю .
    ExpandedWrap disabled
      <%@ Master Language="VB" MasterPageFile="~/Site.Master" AutoEventWireup="false" CodeBehind="NMPLeft.master.vb"
      Inherits="WebS.NMPLeft" %>
       
      <%@ Register Assembly="WebS" Namespace="MyControls" TagPrefix="MyControls" %>

    подчеркивает верхнюю строчку с ошибкой:
    Пространство имен или тип, указанные в операторе Imports "MyControls", не содержат открытые члены или не могут быть найдены. Убедитесь, что пространство имен или тип определены и содержат хотя бы один открытый член. Убедитесь, что имя импортируемого элемента не было использовано в других Imports.
    Умышленно Assembly="WebS" меняю на неправильное значение ну к примеру Assembly="Web" перестает подчеркивать
    но элемент все равно не находит

    <MyControls:WebMenu runet="server"></MyControls:WebMenu> - подчеркивает WebMenu
    что не так делаю?
      А где ты этот класс описываешь?
        файл Menu.vb в корне проекта WebS
          В общем рассмотрю другие Вами предложенные варианты)))
          Нужно получить динамически, подобный код:
          ExpandedWrap disabled
            <ul id="menu">
                        <li><a href="#">Меню</a>
                            <ul>
                                <li><a href="">Меню</a></li>
                                <li><a href="">Меню</a></li>
                                <li><a href="">Меню</a></li>
                            </ul>
                        </li>
                        <li><a href="#">Меню</a></li>
                        <li><a href="#">Меню</a>
                            <ul>
                                <li><a href="">Меню</a></li>
                                <li><a href="">Меню</a></li>
                                <li><a href="">Меню</a></li>
                            </ul>
                        </li>
                        <li><a href="">Меню</a>
                            <ul>
                                <li><a href="">Меню</a></li>
                                <li><a href="">Меню</a></li>
                            </ul>
                        </li>
                        <li><a href="">Меню</a></li>
                        <li><a href="">Меню</li>
                        <li><a href="">Меню</a></li>
                        <li><a href="">Меню</a></li>
                        <li><a href="">Меню</a></li>
                    </ul>
                    <script src="Scripts/JScript.js" type="text/javascript"></script>
                    <script type="text/javascript">
                        $(function () {
                            if ($.browser.msie && $.browser.version.substr(0, 1) < 7) {
                                $('li').has('ul').mouseover(function () {
                                    $(this).children('ul').css('visibility', 'visible');
                                }).mouseout(function () {
                                    $(this).children('ul').css('visibility', 'hidden');
                                })
                            }
                        });        
                    </script>


          ExpandedWrap disabled
            /* Menu */
                #menu, #menu ul {
                    margin: 0;
                    padding: 0;
                    list-style: none;
                }
                
                #menu
                {
                    width: 742px;
                    margin: 100px 0px 30px 60px;
                    border: 1px solid #222;
                    background-color: #111;
                    background-image: -moz-linear-gradient(#444, #111);
                    background-image: -webkit-gradient(linear, left top, left bottom, from(#444), to(#111));    
                    background-image: -webkit-linear-gradient(#444, #111);  
                    background-image: -o-linear-gradient(#444, #111);
                    background-image: -ms-linear-gradient(#444, #111);
                    background-image: linear-gradient(#444, #111);
                    -moz-border-radius: 6px;
                    -webkit-border-radius: 6px;
                    border-radius: 6px;
                    -moz-box-shadow: 0 1px 1px #777, 0 1px 0 #666 inset;
                    -webkit-box-shadow: 0 1px 1px #777, 0 1px 0 #666 inset;
                    box-shadow: 0 1px 1px #777, 0 1px 0 #666 inset;
                }
                
                #menu:before,
                #menu:after {
                    content: "";
                    display: table;
                }
                
                #menu:after {
                    clear: both;
                }
                
                #menu {
                    zoom:1;
                }
                
                #menu li {
                    float: left;
                    border-right: 1px solid #222;
                    -moz-box-shadow: 1px 0 0 #444;
                    -webkit-box-shadow: 1px 0 0 #444;
                    box-shadow: 1px 0 0 #444;
                    position: relative;
                }
                
                #menu a {
                    float: left;
                    padding: 6px 8px;
                    color: #999;
                    text-transform: uppercase;
                    font: bold 12px Arial, Helvetica;
                    text-decoration: none;
                    text-shadow: 0 1px 0 #000;
                }
                
                #menu li:hover > a {
                    color: #fafafa;
                }
                
                *html #menu li a:hover { /* IE6 only */
                    color: #fafafa;
                }
                
                #menu ul {
                    margin: 10px 0 0 0;
                    _margin: 0; /*IE6 only*/
                    opacity: 0;
                    visibility: hidden;
                    position: absolute;
                    top: 38px;
                    left: 0;
                    z-index: 9999;    
                    background: #444;
                    background: -moz-linear-gradient(#444, #111);
                    background-image: -webkit-gradient(linear, left top, left bottom, from(#444), to(#111));
                    background: -webkit-linear-gradient(#444, #111);    
                    background: -o-linear-gradient(#444, #111);
                    background: -ms-linear-gradient(#444, #111);    
                    background: linear-gradient(#444, #111);
                    -moz-box-shadow: 0 -1px rgba(255,255,255,.3);
                    -webkit-box-shadow: 0 -1px 0 rgba(255,255,255,.3);
                    box-shadow: 0 -1px 0 rgba(255,255,255,.3);  
                    -moz-border-radius: 3px;
                    -webkit-border-radius: 3px;
                    border-radius: 3px;
                    -webkit-transition: all .2s ease-in-out;
                    -moz-transition: all .2s ease-in-out;
                    -ms-transition: all .2s ease-in-out;
                    -o-transition: all .2s ease-in-out;
                    transition: all .2s ease-in-out;  
                }
             
                #menu li:hover > ul {
                    opacity: 1;
                    visibility: visible;
                    margin: 0;
                }
                
                #menu ul ul {
                    top: 0;
                    left: 150px;
                    margin: 0 0 0 20px;
                    _margin: 0; /*IE6 only*/
                    -moz-box-shadow: -1px 0 0 rgba(255,255,255,.3);
                    -webkit-box-shadow: -1px 0 0 rgba(255,255,255,.3);
                    box-shadow: -1px 0 0 rgba(255,255,255,.3);      
                }
                
                #menu ul li {
                    float: none;
                    display: block;
                    border: 0;
                    _line-height: 0; /*IE6 only*/
                    -moz-box-shadow: 0 1px 0 #111, 0 2px 0 #666;
                    -webkit-box-shadow: 0 1px 0 #111, 0 2px 0 #666;
                    box-shadow: 0 1px 0 #111, 0 2px 0 #666;
                }
                
                #menu ul li:last-child {  
                    -moz-box-shadow: none;
                    -webkit-box-shadow: none;
                    box-shadow: none;    
                }
                
                #menu ul a {    
                    padding: 10px;
                    width: 130px;
                    _height: 10px; /*IE6 only*/
                    display: block;
                    white-space: nowrap;
                    float: none;
                    text-transform: none;
                }
                
                #menu ul a:hover {
                    background-color: #0186ba;
                    background-image: -moz-linear-gradient(#04acec,  #0186ba);  
                    background-image: -webkit-gradient(linear, left top, left bottom, from(#04acec), to(#0186ba));
                    background-image: -webkit-linear-gradient(#04acec, #0186ba);
                    background-image: -o-linear-gradient(#04acec, #0186ba);
                    background-image: -ms-linear-gradient(#04acec, #0186ba);
                    background-image: linear-gradient(#04acec, #0186ba);
                }
                
                #menu ul li:first-child > a {
                    -moz-border-radius: 3px 3px 0 0;
                    -webkit-border-radius: 3px 3px 0 0;
                    border-radius: 3px 3px 0 0;
                }
                
                #menu ul li:first-child > a:after {
                    content: '';
                    position: absolute;
                    left: 40px;
                    top: -6px;
                    border-left: 6px solid transparent;
                    border-right: 6px solid transparent;
                    border-bottom: 6px solid #444;
                }
                
                #menu ul ul li:first-child a:after {
                    left: -6px;
                    top: 50%;
                    margin-top: -6px;
                    border-left: 0;
                    border-bottom: 6px solid transparent;
                    border-top: 6px solid transparent;
                    border-right: 6px solid #3b3b3b;
                }
                
                #menu ul li:first-child a:hover:after {
                    border-bottom-color: #04acec;
                }
                
                #menu ul ul li:first-child a:hover:after {
                    border-right-color: #0299d3;
                    border-bottom-color: transparent;  
                }
                
                #menu ul li:last-child > a {
                    -moz-border-radius: 0 0 3px 3px;
                    -webkit-border-radius: 0 0 3px 3px;
                    border-radius: 0 0 3px 3px;
                }


          Нужно меню из статистического сделать динамическое, я попытался заюзать контрол aspx menu, и при попытке переложить css произошел взрыв мозга :blink:

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

          Приму все дельные советы)
            Цитата -=VIRUS=- @
            файл Menu.vb в корне проекта WebS

            тип проекта какой? верссии фреймворка совпадают?


            Добавлено
            Цитата -=VIRUS=- @
            MustInherit

            :whistle:

            не пишу на этом вэбэнет, поэтому сложно такие косяки видеть <_<

            Добавлено
            Вообще есть такой класс стандартный Menu. Не помню, он ul/li делает при каких-то раскладах или нет...
            Сообщение отредактировано: UncleBob -
              Решил проблему) где-то гайд нашел, там все гораздо проще,
              создал пользовательский контрол .ascx в дизайнере нечего не делал, а в коде перехватил Render. По сути такой контрол не принимает данные, но я и тут обошел проблему, вызываю функцию которая заполняет мне структуру данными.
              Цитата UncleBob @
              Вообще есть такой класс стандартный Menu. Не помню, он ul/li делает при каких-то раскладах или нет...
              Цитата -=VIRUS=- @
              я попытался заюзать контрол aspx menu

              у контрола aspx menu, какой-то геморный css, в свойствах одно в css другое, 2 режима работы динамический и статический причем css отличается, при использовании обоих режимов нужно 2 css, а про анимацию css в обще молчю :blink:


              Вот и пришлось свой контрол делать)
                У тебя проблема в том была, что ты класс объявил как MustInherit
                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                0 пользователей:


                Рейтинг@Mail.ru
                [ Script execution time: 0,0291 ]   [ 15 queries used ]   [ Generated: 17.05.24, 03:51 GMT ]