2011-08-15 32 views
4

私のsearch.aspxページにある.ascxユーザーコントロールがあります。どうやって、search.aspx.csコードの.ascxユーザーコントロールからコントロールを取得するのですか?ASP.Netのascxページからコントロールを取得

keywordSearch.Value = "value"; 
// the code behind can't see the keywordSearch control 

答えて

3

彼らはprotectedとして宣言されているため、通常、内部コントロールは、テンプレートユーザーコントロールから公開されていません。ただし、このように、パブリックプロパティでコントロールを公開することができます

public TextBox CustomerName { 
    get { return txt_CustomerName; } 
} 

編集を:あなたはに必要がある場合は、あなたが値を公開するプロパティを持つ方がいいでしょう、その後コントロールの値を設定していませんコントロール:

public string CustomerName { 
    get { return txt_CustomerName.Text; } 
    set { txt_CustomerName.Text = value; } 
} 
+0

どのようにあなたもセッターを書くのでしょうか? – cdub

+0

値を_set_する必要がある場合は、ここで問題のコントロールに応じてプロパティを文字列またはその他のタイプとして公開し、アクセサーの値を取得または設定する必要があります。あなたはコントロールの値のゲッターを公開したいが、コントロール自体のセッターは公開したくない。 – kprobst

+0

ありがとう私はそれが最終的に今働いている – cdub

3

あなたはその背後にあるユーザーコントロールのコードでは、パブリック(または内部)の特性を提供することができるかもしれないが、ユーザーコントロール内のコントロールを「取得」ことができます。その場合、ページのコードからそのプロパティにアクセスできます。

1

は、コンテナページでコントロールにアクセスするためにFindControlメソッドを試してみてください。

((TextBox)Page.FindControl("keywordSearch")).Value = "value"; 
関連する問題