2009-04-10 10 views

答えて

9

あなたが公共のオブジェクトとして全体のTextBoxコントロールを公開することなく、テキストボックスの値を取得することができます。この方法で、例えば、

public string TextBoxValue 
{ 
    get { return txtControl1.Text; } 
} 

、その内容を公開するユーザーコントロール内のプロパティを記述します。

2

Jon Limjapの答えは、この種の問題に最適なソリューションを提供します。パブリックプロパティを使用してコントロール値を公開します。

ただし、このようにしたくない場合(または、多くのコントロールでこれを行う必要があり、コントロールごとにパブリックプロパティを作成しないようにする必要がある場合)、Reflectionを使用して、必要なUserControlのChildControlで:

TextBox txt = UserControl1.FindControl("myTextBox") as TextBox; 

if (txt != null) 
{ 
    string val = txt.Text; 
} 
0

私は、リクエストから値を取得する方が簡単だと思います。あなたはそれを見つけるために、このような一般的なメソッドを書くことができる:

string get_value(string control_name) 
    { 
     var key = Request.Form.AllKeys.First(x => x.ends_with(control_name)); 
     return Request.Form[key]; 
    } 
1

.aspxのページの上部には、タグの上に以下の行を追加します。

<%@ Register TagPrefix="Test" TagName="TestControl" Src="Test.ascx" %> 

このディレクティブは、ページの処理時に認識されるようにコントロールを登録します。 TagPrefixはコントロールの一意の名前空間を決定し、TagNameはユーザーコントロールの名前であり、Srcはユーザーコントロールのパスです。 ユーザーはJavaScriptを使用して、コードビハインドで、アクセスしてプロパティを通じた.aspxページからユーザーコントロールの値を設定することができます。

<Test:TestControl id="TestControl" runat="Server"/> 

がアクセスすると、ユーザーの設定のような 宣言ユーザーコントロールは、.aspxページの値を制御します詳細は以下のとおりです プロパティの使用 test.ascxコントロールに2つのテキストボックスと送信ボタンがある場合は、コントロールのテキストボックスの値に.aspxページからアクセスできます。 .ascxページ。 .aspxのページで

public string FirstName 
{ 
get{return txtFirstName.Text;} 
set{txtFirstName.Text = value;} 
} 

、あなたが使用して姓にアクセスすることができます

TestControl.FirstName 
You can set the FirstName of the control from aspx page using 
TestControl.FirstName = "Suzzanne" 

注:ref

関連する問題