Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.188.254.179] |
|
Сообщ.
#1
,
|
|
|
что делаю:
создаю контрол - 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 Подключаю . <%@ 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 что не так делаю? |
Сообщ.
#2
,
|
|
|
А где ты этот класс описываешь?
|
Сообщ.
#3
,
|
|
|
файл Menu.vb в корне проекта WebS
|
Сообщ.
#4
,
|
|
|
В общем рассмотрю другие Вами предложенные варианты)))
Нужно получить динамически, подобный код: <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> /* 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 произошел взрыв мозга с созданием собственного контрола какой то ступор непонятный) оно конечно хочется разобраться с собственными контролами, но время не казенное. Приму все дельные советы) |
Сообщ.
#5
,
|
|
|
Цитата -=VIRUS=- @ файл Menu.vb в корне проекта WebS тип проекта какой? верссии фреймворка совпадают? Добавлено Цитата -=VIRUS=- @ MustInherit не пишу на этом вэбэнет, поэтому сложно такие косяки видеть Добавлено Вообще есть такой класс стандартный Menu. Не помню, он ul/li делает при каких-то раскладах или нет... |
Сообщ.
#6
,
|
|
|
Решил проблему) где-то гайд нашел, там все гораздо проще,
создал пользовательский контрол .ascx в дизайнере нечего не делал, а в коде перехватил Render. По сути такой контрол не принимает данные, но я и тут обошел проблему, вызываю функцию которая заполняет мне структуру данными. Цитата UncleBob @ Вообще есть такой класс стандартный Menu. Не помню, он ul/li делает при каких-то раскладах или нет... Цитата -=VIRUS=- @ я попытался заюзать контрол aspx menu у контрола aspx menu, какой-то геморный css, в свойствах одно в css другое, 2 режима работы динамический и статический причем css отличается, при использовании обоих режимов нужно 2 css, а про анимацию css в обще молчю Вот и пришлось свой контрол делать) |
Сообщ.
#7
,
|
|
|
У тебя проблема в том была, что ты класс объявил как MustInherit
|