私のsearch.aspxページにある.ascxユーザーコントロールがあります。どうやって、search.aspx.csコードの.ascxユーザーコントロールからコントロールを取得するのですか?ASP.Netのascxページからコントロールを取得
keywordSearch.Value = "value";
// the code behind can't see the keywordSearch control
私のsearch.aspxページにある.ascxユーザーコントロールがあります。どうやって、search.aspx.csコードの.ascxユーザーコントロールからコントロールを取得するのですか?ASP.Netのascxページからコントロールを取得
keywordSearch.Value = "value";
// the code behind can't see the keywordSearch control
彼らはprotected
として宣言されているため、通常、内部コントロールは、テンプレートユーザーコントロールから公開されていません。ただし、このように、パブリックプロパティでコントロールを公開することができます
public TextBox CustomerName {
get { return txt_CustomerName; }
}
編集を:あなたはに必要がある場合は、あなたが値を公開するプロパティを持つ方がいいでしょう、その後コントロールの値を設定していませんコントロール:
public string CustomerName {
get { return txt_CustomerName.Text; }
set { txt_CustomerName.Text = value; }
}
あなたはその背後にあるユーザーコントロールのコードでは、パブリック(または内部)の特性を提供することができるかもしれないが、ユーザーコントロール内のコントロールを「取得」ことができます。その場合、ページのコードからそのプロパティにアクセスできます。
は、コンテナページでコントロールにアクセスするためにFindControlメソッドを試してみてください。
((TextBox)Page.FindControl("keywordSearch")).Value = "value";
どのようにあなたもセッターを書くのでしょうか? – cdub
値を_set_する必要がある場合は、ここで問題のコントロールに応じてプロパティを文字列またはその他のタイプとして公開し、アクセサーの値を取得または設定する必要があります。あなたはコントロールの値のゲッターを公開したいが、コントロール自体のセッターは公開したくない。 – kprobst
ありがとう私はそれが最終的に今働いている – cdub