日期:2014-05-17  浏览次数:20378 次

控件做的通用导航菜单,如何取得cs的变更?
控件文件:WebUserControl.ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" %>
        <UL id=navUl>
          <LI><A href="">首页</A> </LI>
         <% if (kind == 1){%> <LI ><A href="class1.htm" >管理系统</A></LI><%}%>
          <% if (kind == 2){%><LI><A href="class2.htm">会员系统</A> </LI><%}%>
        </UL>

页面文件:page_one.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="page_one.aspx.cs" Inherits="page_one" %>
<%@ Register TagPrefix="thisSite" TagName="top1" src="WebUserControl.ascx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title></title>
</head>
<body>
<thisSite:copyright id="top1" runat="server"> 
</thisSite:copyright>

后台文件:page_one.aspx.cs 中指定 kind=1

------解决方案--------------------
<LI runat="Server" id="managementsystemmenu"><A href="class1.htm" >管理系统</A></LI>
<LI runat="Server" id="membersystemmenu"><A href="class2.htm">会员系统</A> </LI>

控件的后台里判断kind,再决定managementsystemmenu和membersystemmenu的Visable

void Page_Load(...)
{
    managementsystemmenu.Visible = kind == 1;
    ....
}
------解决方案--------------------
方法很多的,给一个楼主自己搞定:
用户头部是公用的用户控件,给它一个公开属性(最好给一个默认值,比如一开打系统或网站时第一个菜单选中什么的),这样就什么都好办了,比如这个公开属性可以在前台js中获取,然js操作css(jq最好),再比如直接把这个公开属性用耦合标签<%...%>绑定到对应的class上即可.
每个页面调用这个用户控件时给它的公开属性赋值即可,可前台赋值也可以在pageload事件里面赋值