- ·上一篇文章:让SubSonic生成实体类自动加注释
- ·下一篇文章:关于IE缓存和AJAX的一点思考和疑问
一个动态菜单的例子(downmoon)
前台文件:
border="0" align="center" cellPadding="0" cellSpacing="0" >
<asp:label id="labMenuItem" runat="server">
javascript:window.open(this.src);" style="cursor: pointer;"/>
后台文件:
using System;
using System.IO;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data;
using System.Text.RegularExpressions;
using System.Text;
namespace Vegnet.User.Web.UI.Controls
{
///
/// Menu 的摘要说明。
///
public class Menu:Vegnet.Common.Web.UI.Controls.BaseControl
{
#region Members
#region 菜单内容,
//Vip栏目标记
string _vipImage="
javascript:window.open(this.src);" style="cursor: pointer;"/>";
//其实不应加在这里,应在公用组件里,
//此处应用Static 变量,待改!!
// downmoon 2006-12-11
#region 显示菜单ID
protected int MenuExtendDivID
{
get
{
object o =ViewState["MenuExtendDivID"];
if(o!=null)
{
return int.Parse(o.ToString());
}
else
{
return -1;
}
}
set
{
ViewState["MenuExtendDivID"]=value;
}
}
#endregion
//欢迎与邀月交流,net技术与软件架构 2006年12月4日
#region 公共菜单头
///
/// 有些项展开
///
protected static string publicPreExtend
{
//
get
{
return @"
<asp:label id="labMenuItem" runat="server">
javascript:window.open(this.src);" style="cursor: pointer;"/>后台文件:
using System;
using System.IO;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data;
using System.Text.RegularExpressions;
using System.Text;
namespace Vegnet.User.Web.UI.Controls
{
///
/// Menu 的摘要说明。
///
public class Menu:Vegnet.Common.Web.UI.Controls.BaseControl
{
#region Members
#region 菜单内容,
//Vip栏目标记
string _vipImage="
javascript:window.open(this.src);" style="cursor: pointer;"/>";//其实不应加在这里,应在公用组件里,
//此处应用Static 变量,待改!!
// downmoon 2006-12-11
#region 显示菜单ID
protected int MenuExtendDivID
{
get
{
object o =ViewState["MenuExtendDivID"];
if(o!=null)
{
return int.Parse(o.ToString());
}
else
{
return -1;
}
}
set
{
ViewState["MenuExtendDivID"]=value;
}
}
#endregion
//欢迎与邀月交流,net技术与软件架构 2006年12月4日
#region 公共菜单头
///
/// 有些项展开
///
protected static string publicPreExtend
{
//
get
{
return @"
| "; } } /// /// 默认不展开 /// protected static string publicPre { //onmouseout=this.style.cursor='default' onmouseover=this.style.cursor='hand' get { return @"
} } #endregion #region 会员资料 /// /// Menuid==0 /// protected string UserMenu { get { string s=""; s= @" " +publicEnd; // s=(MenuExtendDivID==0)?(publicPreExtend+s):(publicPre+s); s=string.Format(s,"User",""","会员资料"); return s; } } #endregion 2 #region 企业管理 /// /// Menuid==1 /// protected string CompanyMenu { get { string s=""; s= @" " +publicEnd; s=(MenuExtendDivID==1)?(publicPreExtend+s):(publicPre+s); s=string.Format(s,"Company",""","企业管理"); return s; } } #endregion #region 产品列表 /// /// Menuid==2 /// protected string ProductInfoMenu { get { string s=""; s= @"
+publicEnd; // s=(MenuExtendDivID==2)?(publicPreExtend+s):(publicPre+s); s=string.Format(s,"ProductInfo",""","产品库"); return s; } } #endregion #region 供应列表 /// /// Menuid==3 /// protected string TradeForSellMenu { get { string s=""; s= @" " +publicEnd; // s=(MenuExtendDivID==3)?(publicPreExtend+s):(publicPre+s); s=string.Format(s,"TradeForSell",""","供应信息"); return s; } } #endregion #region 求购列表 /// /// Menuid==4 /// protected string TradeForBuyMenu { get { string s=""; s= @" " +publicEnd; s=(MenuExtendDivID==4)?(publicPreExtend+s):(publicPre+s); s=string.Format(s,"TradeForBuy",""","求购信息"); return s; } } #endregion #region 代理合作列表 /// /// Menuid==5 /// protected string TradeForDeleAndCorpMenu { get { string s=""; s= @" " +publicEnd; s=(MenuExtendDivID==5)?(publicPreExtend+s):(publicPre+s); s=string.Format(s,"TradeForDeleAndCorp",""","代理合作信息"); return s; } } #endregion #region 站内邮件 /// /// Menuid==6 /// protected string MessageMenu { get { string s=""; s= @" " +publicEnd; s=(MenuExtendDivID==6)?(publicPreExtend+s):(publicPre+s); s=string.Format(s,"Message",""","站内邮件"); return s; } } #endregion #region 推荐及订阅列表 /// /// Menuid==7 /// protected string MagzineAndSubscribeMenu { get { string s=""; s= @" " +publicEnd; s=(MenuExtendDivID==7)?(publicPreExtend+s):(publicPre+s); s=string.Format(s,"MagzineAndSubscribe",""","中国农业商情蔬菜卷"); return s; } } #endregion #region 图片管理 /// /// Menuid==8 /// protected string PictureMenu { get { string s=""; s= @" " +publicEnd; s=(MenuExtendDivID==8)?(publicPreExtend+s):(publicPre+s); s=string.Format(s,"Picture",""","图片管理"); return s; } } #endregion #region 其他列表 /// /// Menuid==9 /// protected string OtherMenu { get { string s=""; s= @" " +publicEnd; s=(MenuExtendDivID==9)?(publicPreExtend+s):(publicPre+s); s=string.Format(s,"Other",""","其他"); return s; } } #endregion #region 帮助列表 /// /// Menuid==10 /// protected string HelpMenu { get { string s=""; s= @" " +publicEnd; s=(MenuExtendDivID==10)?(publicPreExtend+s):(publicPre+s); s=string.Format(s,"Help",""","帮助"); return s; } } #endregion #region 蔬菜价格 /// /// Menuid==11 /// protected string PriceMenu { get { string s=""; s= @"
+publicEnd; s=(MenuExtendDivID==11)?(publicPreExtend+s):(publicPre+s); s=string.Format(s,"Picture",""","蔬菜价格"); return s; } } #endregion #region 增值推荐 /// /// Menuid==11 /// protected string IncrementMenu { get { string s=""; s= @" " +publicEnd; s=(MenuExtendDivID==12)?(publicPreExtend+s):(publicPre+s); s=string.Format(s,"Increment",""","增值推荐"); return s; } } #endregion #endregion Vegnet.User.Framework.Components.User user=Vegnet.User.Framework.Data.DataDTOProvider.GetUserByCach(); protected Label labMenuItem; #endregion protected override void OnLoad(EventArgs e) { base.OnLoad (e); //Page.Response.Write(user.IsBase); //Page.SmartNavigation=true; //2006年10月30日新增 欢迎与邀月交流,net技术与软件架构 是否允许推荐产品到杂志,目前所有注册用户均可。推荐规则见设计文档 //目前暂不动,合适时应改为case判断 if(user==null) { Page.Response.Redirect("/User/Login.aspx"); return ; } if(!IsPostBack) { try { this.MenuExtendDivID=(Page.Request["dvid"]!=null)?int.Parse(Page.Request["dvid"].ToString()):-1; } catch { this.MenuExtendDivID=-1; } } if(labMenuItem!=null) { StringBuilder sb=new StringBuilder();//定义临时变量 sb.Append(" | |
| ");//初始化头 if(user.IsAllowRecommendToMagzine) { #region 如果允许推荐 #region 用户类型 if(user.IsBase) { sb.Append(UserMenu); sb.Append(CompanyMenu); sb.Append(ProductInfoMenu); sb.Append(TradeForSellMenu); sb.Append(TradeForBuyMenu); sb.Append(TradeForDeleAndCorpMenu); sb.Append(MessageMenu); sb.Append(MagzineAndSubscribeMenu); sb.Append(PriceMenu); //+PictureMenu sb.Append(IncrementMenu); sb.Append(OtherMenu); //+HelpMenu } else { sb.Append(UserMenu); sb.Append(CompanyMenu); sb.Append(ProductInfoMenu); sb.Append(TradeForSellMenu); sb.Append(TradeForBuyMenu); sb.Append(TradeForDeleAndCorpMenu); sb.Append(MessageMenu); sb.Append(MagzineAndSubscribeMenu); sb.Append(PriceMenu); //+PictureMenu sb.Append(IncrementMenu); sb.Append(OtherMenu); //+HelpMenu } #endregion #endregion } else { #region 如果不允许推荐 #region 用户类型 if(user.IsBase) { sb.Append(UserMenu); sb.Append(CompanyMenu); sb.Append(ProductInfoMenu); sb.Append(TradeForSellMenu); sb.Append(TradeForBuyMenu); sb.Append(TradeForDeleAndCorpMenu); sb.Append(MessageMenu); sb.Append(OtherMenu); //+HelpMenu } else { sb.Append(UserMenu); sb.Append(CompanyMenu); sb.Append(ProductInfoMenu); sb.Append(TradeForSellMenu); sb.Append(TradeForBuyMenu); sb.Append(TradeForDeleAndCorpMenu); sb.Append(MessageMenu); sb.Append(OtherMenu); //+HelpMenu } #endregion #endregion } sb.Append(" |


javascript:window.open(this.src);" style="cursor: pointer;"/>
javascript:window.open(this.src);" style="cursor: pointer;"/>