你把自定义控件根据需要继承相关类就可以使用SESSION了,如果你不能让你自定义的控件是一个组合控件,不能从某一个具体的类继承,那么就继承WebControl类。

解决方案 »

  1.   

    自定义控件本来需要继承Control类C#中并不支持多继承,如何继承Page类
      

  2.   

    用WebControl雷代替Control还是不行
      

  3.   

    因为我没有在自定义控件使用过SESSION,所以不能进一步确定。我想问的是:你为什么要在自定义控件中使用SESSION?是为了传递相关参数吗?如果这个数据是确定的,可以添加属性来设置该数据,如果是动态的,也可以通过属性来设置值。如果你一定要使用SESSION,看下面的方法是否有效:this.Page.Session[""]
      

  4.   

    那么如何传递动态的参数<Container:navigation id="control" runat="server" />如果把上面的语句改为
    <Container:navigation id="control" param=<%=Session["param"]%> runat="server" />会出错
      

  5.   

    triout(Daview)兄的方法确实可行可否告知如何传递动态的参数
      

  6.   

    把下面的语句:
    Container:navigation id="control" param=<%=Session["param"]%> runat="server" />
    修改为:
    Container:navigation id="control" param=<%=this.ReturnSession("param")%> runat="server" />另外,你使用的是代码与窗体的混合编程吗?如果使用的是CodeBehind方式,应该使用下面的格式:
    Container:navigation id="control" param='<%#this.ReturnSession("param")%>' runat="server" />
    然后在代码中添加下面的方法:
    protected object ReturnSession(string strSessionName)
    {
       return Session[strSessionName];
    }
    如果肯定是字符串,还可以把修改为:
    protected string ReturnSession(string strSessionName)
    {
       return Session[strSessionName].ToString();
    }