2012-02-01 22 views
4

UserControlの中にTextBoxが1つあります。このUserControlは、Repeaterの中で繰り返されています。 しかし、ユーザーがTextBoxに値を入力した後、TextBoxから値を取得できません。UserControlsを含むRepeaterからすべてのTextBox値を取得する方法?

のdefault.aspx:button1クリックで

protected void Page_Load(object sender, EventArgs e) 
{ 
    //filling repeater with dataset 
    Repeater1.DataSource = ds; 
    Repeater1.DataBind(); 
} 

私はtextbox.text

protected void Button1_Click(object sender, EventArgs e) 
{ 
    List<string> sss = new List<string>(); 
    foreach (Control i in Repeater1.Controls) 
    { 
     foreach (Control item in i.Controls) 
     { 
      if (item is WebUserControl1) 
       sss.Add(((WebUserControl1)item).getString); 
     } 
    } 
} 

そしてUserControlコードから値をList<string>を埋めるためにしようとしている:あなたは

public string getString 
{ 
    get 
    { return TextBox1.Text; } 
} 

protected void Page_Load(object sender, EventArgs e) 
{ 

} 

答えて

4

必要がありますすべてのリピータの項目にループを作成し、0123を使用します)=不必要に `RepeaterItem`s内のすべてのコントロールをループではないため

foreach(var rptItem in Repeater1.Items) 
{ 
    WebUserControl1 itemUserControl = ((WebUserControl1)rptItem .FindControl("WebUserControl1")) 

    if(itemUserControl != null) 
    { 
    var itemText = itemUserControl.getString(); 
    } 
} 
+0

1:そのような見つけられたインスタンス、擬似コード(テストしていない)にgetStringメソッドを呼び出して、ユーザーコントロールを見つけるために – jadarnel27

+0

私はリピータの中にあるusercontrolの中のテキストボックスにアクセスする同様の問題があります。どのようにユーザーコントロールからテキストボックスを参照するのですか?ラベルを参照してテキストを変更することはできますが、何とかテキストボックスから読み込むことはできません。 – Osprey

関連する問題