2012-10-24 16 views
0

我想声明控件的类文件中的变量,并在加载本身的ascx文件中使用它们,但没有成功(第一次使用asp.net应用)设置一个类来存储可以用于通过应用的常量值

例如:

在的.cs

public void OnInit() 
    { 
     int username = "John"; 
    } 

然后在ASCX:

< A HREF =“<%= username%>“> test </a>

但是这会引发错误,说明用户名未定义。我已经尝试过Page_Load,Init也没有成功......任何人?

回答

1

的用户名是唯一的INIT/Load事件中可见,为了vieew它就像你有,你就必须做一个公共财产,然后从Load/Init事件中分配给它。

public string username; 

public void Page_Load(object sender, EventArgs e) 
{ 
    username = "john smith"; 
} 

编辑 - 根据最新评论

page.cs

protected void Page_Load(object sender, EventArgs e) 
{ 
    NameControl1.strUsername = "John"; 
} 

page.aspx

<%@ Register Src="~/Name.ascx" TagName="Name" TagPrefix="TEST" %> 
<TEST:Name ID="NameControl1" runat="server" /> 

name.ascx.cs

public int strUsername; 
private int Username 
{ 
    get{return strUsername;} 
    set{strUsername = value;} 
} 
protected void Page_Load(object sender, EventArgs e) 
{ 
    label1.Text = Username; 
} 
+0

还你要分配用户名变量为一个字符串,而不是一个int – kolin

+0

这工作,我错过了函数之前的声明......非常感谢 – Luckyy

+0

是科林,实际上功能有点操纵分享在这里,所以错过了错误那就好了... :) – Luckyy

0

object sender,EventArgs eUse public property。

public string username{set;get;} 
    public void Page_Load() 
    { 
     username = "John"; 
    }  
In ascx : 

    < a href = "<%=username %>">test < /a> 
+0

嗨Pmtamal,那工作不错,但不是在OnInit的,,,,,我不得不而是使用的Page_Load,但非常感谢给我的想法来声明一个变种 – Luckyy

相关问题