我先创建一个Temp.ascx用户控件
代码如下:
private NvaigateUrl1;
protected System.Web.UI.WebControls.HyperLink hl1;private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
hl1.NavigateUrl=NavigateUrl1;  //也就是每次到这步时,NavigateUrl1的值总是Null
}public string LinkNavigateUrl1
{
get
{
return NavigateUrl1;
}
set
{
NavigateUrl1 = value;
}
}然后新建一个WEB页
把上面控件拖到这个WEB页上
后台代码如下:
//为各模块导航按钮赋予链接
protected Temp temp1=new Temp();private void AddNavigate()
{
this.temp1.LinkNavigateUrl1="../../../../WebForm1.aspx";
}private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if (!Page.IsPostBack)
{
AddNavigate();
}
}这样写完以后,每当点击Temp.ascx中的hl1时,显示链接总是为空。
不知道为什么

解决方案 »

  1.   

    protected System.Web.UI.WebControls.HyperLink hl1;private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    hl1.NavigateUrl=LinkNavigateUrl1;  
    }public string LinkNavigateUrl1
    {
    get
    {
                    if(ViewState[this.ClientID+"_url"]==nul)
                          return string.Empty;
                    else
      return ViewState[this.ClientID+"_url"].ToString();
    }
    set
    {
    ViewState[this.ClientID+"_url"] = value;
    }
    }
      

  2.   

    protected Temp temp1=new Temp();好像控件不是这么声明的:public System.Web.UI.UserControl Temp=new Temp();
    要在ASPX页上引用的
      

  3.   

    嗯...还是不可以,我现在的问题是SET方法里VALUE是可以看到值的,但是执行GET方法的时候,值就为NULL了,不知道怎么回事
      

  4.   

    谢谢大家,我的问题已经解决了,
    是protected Temp temp1=new Temp();这句的问题
    这句的格式应该是protected [控件类名] [在页面上的ID名]