ASP.NET

FindControl によるコントロール取得

2013年4月23日

Login コントロールのような複数のユーザーコントロールを内包するコントロールや、テンプレート(ContentTemplate)内に配置されているコントロールは ID 指定で直接参照できないことがあります。このような場合、FindControl() メソッドを利用することでテンプレート内のコントロールを参照することができるようになります。

Login コントロールを使った例:

<%--Login コントロール--%>

// コントロール取得
protected void Button1_Click(object sender, EventArgs e)
{
    this.Login1.TemplateControl.ToString();
    TextBox userName = this.Login1.FindControl("UserName") as TextBox;
    TextBox password = this.Login1.FindControl("Password") as TextBox;
 
    Debug.WriteLine(userName.Text); // ユーザーID
    Debug.WriteLine(password.Text); // パスワード
}

Control.FindControl メソッド (String)
http://msdn.microsoft.com/ja-jp/library/vstudio/486wc64h%28v=vs.100%29.aspx

-ASP.NET