Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

anderdsv2003

Gerar um menu dinâmico em ASP

Recommended Posts

Alguem sabe como faço para gerar um menu dinamico em asp com ositens gerados a partir de uma tabela no banco de dados, e dentrodeste menu tenha um submenu e assim sucessivamente?Utilizando ASP e Javascript ou algum software que faz issoGrato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use o codigo abaixo, no fim mostro um ex de um loop em uma tabela de banco de dados, os parametros de como trocar a cor e a formatação dos menus coloquei em comentário dentro do código

 

espero que tenha ajudado e até.

 

 

 

<html>

<head>

<title>Modelo menu 02</title>

</head>

 

<body>

<script language="JavaScript">

var menus = [];

// --- menu class ---

function menu (item_struct, pos, styles) {

// browser check

this.item_struct = item_struct;

this.pos = pos;

this.styles = styles;

this.id = menus.length;

this.items = [];

this.children = [];

 

this.add_item = menu_add_item;

this.hide = menu_hide;

 

this.onclick = menu_onclick;

this.onmouseout = menu_onmouseout;

this.onmouseover = menu_onmouseover;

this.onmousedown = menu_onmousedown;

 

var i;

for (i = 0; i < this.item_struct.length; i++)

new menu_item(i, this, this);

for (i = 0; i < this.children.length; i++)

this.children.visibility(true);

menus[this.id] = this;

}

function menu_add_item (item) {

var id = this.items.length;

this.items[id] = item;

return (id);

}

function menu_hide () {

for (var i = 0; i < this.items.length; i++) {

this.items.visibility(false);

this.items.switch_style('onmouseout');

}

}

function menu_onclick (id) {

var item = this.items[id];

return (item.fields[1] ? true : false);

}

function menu_onmouseout (id) {

this.hide_timer = setTimeout('menus['+ this.id +'].hide();',

this.pos['hide_delay'][this.active_item.depth]);

if (this.active_item.id == id)

this.active_item = null;

}

function menu_onmouseover (id) {

this.active_item = this.items[id];

clearTimeout(this.hide_timer);

var curr_item, visib;

for (var i = 0; i < this.items.length; i++) {

curr_item = this.items;

visib = (curr_item.arrpath.slice(0, curr_item.depth).join('_') ==

this.active_item.arrpath.slice(0, curr_item.depth).join('_'));

if (visib)

curr_item.switch_style (

curr_item == this.active_item ? 'onmouseover' : 'onmouseout');

curr_item.visibility(visib);

}

}

function menu_onmousedown (id) {

this.items[id].switch_style('onmousedown');

}

// --- menu item Class ---

function menu_item (path, parent, container) {

this.path = new String (path);

this.parent = parent;

this.container = container;

this.arrpath = this.path.split('_');

this.depth = this.arrpath.length - 1;

// get pointer to item's data in the structure

var struct_path = '', i;

for (i = 0; i <= this.depth; i++)

struct_path += '[' + (Number(this.arrpath) + (i ? 2 : 0)) + ']';

eval('this.fields = this.container.item_struct' + struct_path);

if (!this.fields) return;

 

// assign methods

this.get_x = mitem_get_x;

this.get_y = mitem_get_y;

// these methods may be different for different browsers (i.e. non DOM compatible)

this.init = mitem_init;

this.visibility = mitem_visibility;

this.switch_style = mitem_switch_style;

 

// register in the collections

this.id = this.container.add_item(this);

parent.children[parent.children.length] = this;

 

// init recursively

this.init();

this.children = [];

var child_count = this.fields.length - 2;

for (i = 0; i < child_count; i++)

new menu_item (this.path + '_' + i, this, this.container);

this.switch_style('onmouseout');

}

function mitem_init() {

document.write (

'<a id="mi_' + this.container.id + '_'

+ this.id +'" class="m' + this.container.id + 'l' + this.depth

+'o" href="' + this.fields[1] + '" style="position: absolute; top: '

+ this.get_y() + 'px; left: ' + this.get_x() + 'px; width: '

+ this.container.pos['width'][this.depth] + 'px; height: '

+ this.container.pos['height'][this.depth] + 'px; visibility: hidden;'

+' background: black; color: white; z-index: ' + this.depth + ';" '

+ 'onclick="return menus[' + this.container.id + '].onclick('

+ this.id + ');" onmouseout="menus[' + this.container.id + '].onmouseout('

+ this.id + ');" onmouseover="menus[' + this.container.id + '].onmouseover('

+ this.id + ');" onmousedown="menus[' + this.container.id + '].onmousedown('

+ this.id + ');"><div class="m' + this.container.id + 'l' + this.depth + 'i">'

+ this.fields[0] + "</div></a>\n"

);

this.element = document.getElementById('mi_' + this.container.id + '_' + this.id);

}

function mitem_visibility(make_visible) {

if (make_visible != null) {

if (this.visible == make_visible) return;

this.visible = make_visible;

if (make_visible)

this.element.style.visibility = 'visible';

else if (this.depth)

this.element.style.visibility = 'hidden';

}

return (this.visible);

}

function mitem_get_x() {

var value = 0;

for (var i = 0; i <= this.depth; i++)

value += this.container.pos['block_left']

+ this.arrpath * this.container.pos['left'];

return (value);

}

function mitem_get_y() {

var value = 0;

for (var i = 0; i <= this.depth; i++)

value += this.container.pos['block_top']

+ this.arrpath * this.container.pos['top'];

return (value);

}

function mitem_switch_style(state) {

if (this.state == state) return;

this.state = state;

var style = this.container.styles[state];

for (var i = 0; i < style.length; i += 2)

if (style && style[i+1])

eval('this.element.style.' + style + "='"

+ style[i+1][this.depth] + "';");

}

// that's all folks

</script>

 

<script language="JavaScript">

 

var MENU_STYLES1 = new Array();

 

MENU_STYLES1['onmouseout'] = [

'color', ['#ffffff', '#ffffff', '#ffffff'], //cor da font para a 1º,2º e 3º cascata

'background', ['#000000', '#000000', '#000000'],//cor do fundo para a 1º,2º e 3º cascata

'fontWeight', ['normal', 'normal', 'normal'],

'textDecoration', ['none', 'none', 'none'],

'border' ,['1px solid #404040','1px solid #404040','1px solid #404040'],

 

];

MENU_STYLES1['onmouseover'] = [

'color', ['#ffffff', '#ffffff', '#ffffff'], // on mouse over texto 1º,2º e 3º cascata

'background', ['#676767', '#676767', '#676767'],// on mouse over fundo 1º,2º e 3º cascata

'fontWeight', ['normal', 'normal', 'normal'],

'textDecoration', ['none', 'none', 'none'],

'border' ,['1px solid #404040','1px solid #404040','1px solid #404040'],

 

];

// clicar nos itens dos menus

MENU_STYLES1['onmousedown'] = [

'color', ['#ffffff', '#ffffff', '#ffffff'],

'background', ['#c4c4c4', '#c4c4c4', '#c4c4c4'],

'fontWeight', ['normal', 'normal', 'normal'],

'textDecoration', ['none', 'none', 'none'],

'border' ,['1px solid #404040','1px solid #404040','1px solid #404040'],

 

];

</script>

 

<script language="JavaScript">

var MENU_POS2 = new Array();

 

MENU_POS2['width'] = [150, 150, 150];//largura dos menus

MENU_POS2['height'] = [21, 21, 21];

 

MENU_POS2['block_top'] = [0, 0, 0]; // posicao top

MENU_POS2['block_left'] = [0, 149, 149]; // posicao left

 

MENU_POS2['top'] = [20, 20, 20];//altura dos menus

MENU_POS2['left'] = [0, 0, 0];

 

MENU_POS2['hide_delay'] = [200, 200, 200]; //deley time

</script>

 

<!-- -----------------------------------------------------//---------------------------------- -->

 

<!-- estrutura dos menus -->

<script language="JavaScript">

var MENU_ITEMS =

[

 

['Menu01','#'],

 

['Menu02',null,

['Submenu01','#'],

['Submenu02','#'],

['Submenu03','#'],

],

 

['Menu03','#'],

 

['Menu04',null,

['Submenu01','#'],

['Submenu02',null,

['Iten01','#'],

['Iten02','#'],

['Iten03','#'],

['Iten04','#'],

['Iten05','#'],

['Iten06','#'],

['Iten07','#'],

],

['Submenu03',null,

['Iten01','#'],

],

],

 

];

</script>

 

 

<font face="verdana" size="1">

<div align="center">

<script language="JavaScript">

new menu (MENU_ITEMS, MENU_POS2, MENU_STYLES1);

</script>

</div>

</font>

 

 

 

</body>

</html>

 

 

-----------------------------------------------------------------------------------------------

Ex de um loop em uma tb de banco de dados

 

<%

sql = "SELECT * FROM xxx "

Set reg = Server.CreateObject("ADODB.RecordSet")

reg.Open sql, DB

If reg.EOF then

else

 

Do while not reg.Eof

abc = reg("abc")

%>

['<b><%=abc%></b>','link para onde deseja'],

<%

i = i+1

reg.MoveNext

Loop

end if

Set reg = Nothing

%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.