数据库动态读取分类?

问题描述

在首页上会显示一个分类菜单菜单一菜单二菜单三菜单四菜单中的内容是从数据库中动态读取的之后当鼠标放在菜单内容上时会弹出一个新的菜单内容.新的内容也是从数据库中动态读去的现在有两个问题.第一个是这两级菜单要怎么取怎么关联.第二个问题是怎么样可以使菜单更加省资源.比如缓存什么的.使得不必每次鼠标一放上去都查一次数据库?

解决方案

解决方案二:
按需求来.动态读数据库TreeView和meum控件都可以做到.在page_load事件中加载好以后就不需要再查数据库了.
解决方案三:
我建议使用TreeView实现不要用菜单
解决方案四:
取一次数据然后同js做菜单吧我看你这个效果也只有用js做了别的怕是难道符合你的要求
解决方案五:
TreeView读取数据就可以!
解决方案六:
使用ajax,将所有数据取出放在两个newArray()中,然后分成两级菜单
解决方案七:
该回复于2008-06-05 09:06:52被版主删除
解决方案八:
做了一个例子,可以适用你上面的功能usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Collections;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;publicpartialclassMenu:System.Web.UI.Page{privateDataTableAllMenus=newDataTable();//所有菜单privateintindexNum=0;protectedvoidPage_Load(objectsender,EventArgse){if(!IsPostBack){//虚拟数据源DataTableMenus=newDataTable();Menus.Columns.Add("MnuId",typeof(int));//菜单IDMenus.Columns.Add("MnuNo",typeof(string));//菜单noMenus.Columns.Add("MnuName",typeof(string));//菜单名字Menus.Columns.Add("MnuParentNo",typeof(string));//菜单父no,当为null时,为一级菜单Menus.Rows.Add(1,"Menu_01","菜单一",null);Menus.Rows.Add(2,"Menu_02","菜单二",null);Menus.Rows.Add(3,"Menu_03","菜单三",null);Menus.Rows.Add(4,"Menu_04","菜单四",null);Menus.Rows.Add(5,"Menu_05","子菜单一","Menu_01");//可以随便设置归属于那个一级菜单Menus.Rows.Add(6,"Menu_06","子菜单二","Menu_02");Menus.Rows.Add(7,"Menu_07","子菜单三","Menu_03");Menus.Rows.Add(8,"Menu_08","子菜单四","Menu_04");Menus.Rows.Add(9,"Menu_09","子菜单四","Menu_04");AllMenus=Menus.Copy();LoadMenusTree();}}//装载菜单树privatevoidLoadMenusTree(){DataRow[]drs=AllMenus.Select("MnuParentNoisnull");//null时,为一级菜单,这里针对上面的虚拟数据结构foreach(DataRowdrindrs){CreateRootMenus(dr);}}privatevoidCreateRootMenus(DataRowrootMenuEntity){//这里是动态生成tdHtmlTableRowtr=newHtmlTableRow();HtmlTableCelltd=newHtmlTableCell();td.Height="25";td.Align="left";td.InnerHtml=string.Format("<tablewidth='190'height='24'border='0'align='center'style='padding-left:5px;'cellpadding='0'cellspacing='0'><tr><tdid='me1'><ahref="javascript:"onmouseover="ShowMenu({0})"onmouseout="HiddenMenu({0})"><fontcolor="#000000"><spanid='{2}'>{1}</span></font></a></td></tr></table>",rootMenuEntity["MnuId"],rootMenuEntity["MnuName"].ToString(),rootMenuEntity["MnuNo"].ToString());tr.Cells.Add(td);DataRow[]drs=AllMenus.Select(string.Format("MnuParentNo='{0}'",rootMenuEntity["MnuNo"].ToString()));if(drs.Length!=0){//装载子菜单MenuTree.Rows.Add(tr);CreateSubMenus(rootMenuEntity,drs,MenuTree);}}privatevoidCreateSubMenus(DataRowparentMenuEntity,DataRow[]currentMenuEntity,HtmlTabletable){HtmlTableRowtr=newHtmlTableRow();HtmlTableCelltd=newHtmlTableCell();tr.ID="c_"+parentMenuEntity["MnuId"].ToString();tr.Attributes.Add("style","display:none");//子菜单是隐藏的,鼠标经过父菜单就显示,否则隐藏tr.Cells.Add(td);table.Rows.Add(tr);HtmlTabletblSubmenu=newHtmlTable();tblSubmenu.Width="200";//这里是设置动态生成table的样式,可以不要tblSubmenu.Height="30";tblSubmenu.Border=1;tblSubmenu.Align="center";tblSubmenu.CellPadding=0;tblSubmenu.CellSpacing=0;foreach(DataRowsubmenuincurrentMenuEntity){HtmlTableRowtrSubmenu=newHtmlTableRow();trSubmenu.Style["padding-top"]="5px;";HtmlTableCelltdSubmenu=newHtmlTableCell();indexNum+=1;tdSubmenu.InnerHtml=string.Format("<spanid='{0}'>{1}</span>",submenu["MnuNo"].ToString(),submenu["MnuName"].ToString());td.Controls.Add(tblSubmenu);tblSubmenu.Rows.Add(trSubmenu);trSubmenu.Cells.Add(tdSubmenu);}}}

前台主体代码<tableid="MenuTree"runat="server"><tr><tdstyle="width:150px">菜单测试</td></tr></table>

前台js代码functionShowMenu(id)//显示子菜单{varobj=document.getElementById('c_'+id);//alert(obj);if(obj.style.display=="none"){obj.style.display="";}}functionHiddenMenu(id)//隐藏子菜单{varobj=document.getElementById('c_'+id);if(obj.style.display==""){obj.style.display="none";}}

效果图(略)

时间: 2024-12-13 02:39:14

数据库动态读取分类?的相关文章

easyui-easyUI中accordion可以通过数据库的数据的多少来动态创建分类吗?

问题描述 easyUI中accordion可以通过数据库的数据的多少来动态创建分类吗? easyUI中的accordion中分类的多少可以由数据库有多少数据来决定吗,类似于数据库里面有语文,数学,英语,三条数据,那么accordion里面就有语文,数学,英文,三个分类,每个分类打开后是一个datagrid表格 解决方案 easyUI中accordion可以通过数据库的数据的多少来动态创建分类,直接用程序调取就可以了,这个跟easyUI 还是MIUI 没有关系的!

焦点图的图片如何通过数据库动态更新呢

问题描述 我要实现asp.net网站首页的滚动图片,目前图片上传已完成,数据库mysql里保存了上传图片的路径,首页的焦点图我在网上找了个现成的,是用js实现的.现在急需的是如何动态更新这些图片,使它们从数据库里读取图片的路径然后显示出来(我想要用asp.net读取数据库,通过js输出),而不是手写的src.我百度谷歌了好多天都没进展.希望高人指点啊! 解决方案 解决方案二:提供四个思路,楼主看下:1.从后台读取图片路径,然后循环拼接成html流,用符号隔开(,或者|或者$什么的)然后赋值给一个

求一个jquery Tabs 动态读取数据的实例。有用秒结

问题描述 再求一个jqueryAutoComplete(带分页的)动态读取数据的实例.求高人们侠义分享...多多益善!3Q!!!收到后可以加100分E-mail:damo_yang@qq.com 解决方案 本帖最后由 damoyang 于 2010-11-11 09:52:34 编辑解决方案二:nobody?nobody?butyou?解决方案三:马的,,,,顶起..沉的也忒快了解决方案四:该回复于2010-11-11 14:46:32被版主删除解决方案五: 解决方案六:引用4楼porschev

问卷调查 单选 多选 文本列表如何从数据库遍历读取出来

问题描述 问卷调查单选多选文本列表如何从数据库遍历读取出来,并且遍历的提交到数据库.在此谢过了,最近学习这个遇到麻烦了. 解决方案 解决方案二:学习吧:解决方案三:可以页面放一个Panel,取出数据动态添加到Panel里面,大致是这样Labelltable=newLabel();给ltable赋值,如:ltable.Text="<tableid="addrtable"style='width:100%;padding:2px;font-weight:bold;'>

PHP操作数据库 动态创建字段

PHP操作数据库时自动创建字段,如下代码: <html>  <head>  <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />  <title>动态创建字段 - www.cxybl.com</title>  <style type="text/css">  <!--  .STYLE

用ADO的COMMAND对象实现对WEB数据库动态数据查询的方法

用ADO的COMMAND对象实现对WEB数据库动态数据查询的方法★ 林碧英众所周知,由于ASP技术的出现,使得Intranet的应用更加广泛深入.相当多的企业都建立了企业内部综合查询系统,如何快速.准确地查询企业内部信息是编写基于WEB技术应用程序必须要解决的主要问题.ASP提供了用ADO内置的3个主要对象Recordset.Connection和Command对WEB数据库进行操作.其中Connection的主要功能是建立与WEB数据库的链接:Command的主要功能是向WEB数据库传送数据查

ASP高级学习:数据库动态生成树形目录

一.  目录树的广泛应用   为了这段内容,在百度上搜了搜,内容一大通,相关的竟没有.搜什么搜嘛?用处不是明摆着吗?资源管理器文件夹的管理,论坛中多级论坛的管理,JAVA中的AWT正是缺乏包括树形目录这样的组件才用处受限......谁这么没礼貌,一点面子都不给,叫我怎么讲下去?清了清嗓子:  在我们项目中常常会出现自关联的数据表,从整体看去,整个表就呈现为一个树形数据结构.当我们对这个表进行显示.编辑时,如果不采用好的表现形式,会显得很笨拙,采用树形目录进行管理显然是一个不错的主意.  (斧子抡

基于数据库动态生成树形目录

动态|数据|数据库 一. 目录树的广泛应用 为了这段内容,在百度上搜了搜,内容一大通,相关的竟没有.搜什么搜嘛?用处不是明摆着吗?资源管理器文件夹的管理,论坛中多级论坛的管理,JAVA中的AWT正是缺乏包括树形目录这样的组件才用处受限......谁这么没礼貌,一点面子都不给,叫我怎么讲下去?清了清嗓子: 在我们项目中常常会出现自关联的数据表,从整体看去,整个表就呈现为一个树形数据结构.当我们对这个表进行显示.编辑时,如果不采用好的表现形式,会显得很笨拙,采用树形目录进行管理显然是一个不错的主意.

Flex与java交互之数据库数据读取

前几天有网友要我写一篇关于flex与数据库交互的例子,一直由于时间紧没能写,今天晚上特地花点时间写了个例子,希望能给大家一点帮助,其实flex与数据库交互很简单的,我主要是通过java与数据库交互读取数据,然后flex和java进行交互,把java读取的数据在flex前端显示出来,好了,说了一堆废话,下面代码说明问题. 对于建立一个flex web应用的步骤我就不多说了哈. 首先要求大家到数据库建立一个数据库,在我这例子中数据库名为userDb,建立一个表userInfo,里面设置两个字段一个为