0

コントロールのクラスファイルで変数を宣言し、ロード時にascxファイルで使用しようとしていますが、成功しません(asp.netアプリを初めて実行します)

例えば:

.csで

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

次にascxで:

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

しかし、これはユーザー名が定義されていないというエラーを私に投げます。Page_Load、Initも試しましたが、成功しませんでした。

4

2 に答える 2

1

username は INIT/LOAD イベント内でのみ表示されます。表示するには、パブリック プロパティを作成し、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" />

名前.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;
}
于 2012-10-24T14:48:45.503 に答える
0

オブジェクト送信者、EventArgseUseパブリックプロパティ。

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

  < a href = "<%=username %>">test < /a>
于 2012-10-24T14:46:33.850 に答える