0

通常、ユーザー コントロール内にあるテキスト ボックスの値を取得するためにこれを行います。

<asp:TextBox runat="server" Text="Test" ID="txtTest"/>

コード ビハインドでプロパティを作成する

public string MyString
  {  
     get  { return txtTest.Text; }   
  }

親ページでは、ユーザーコントロールのインスタンスを取得し、次のようなテキストボックスの値を取得できます

foreach (RepeaterItem itm in rptAttribute.Items)
{     
 MyUserControl uc = ((MyUserControlitemUserControl)itm.FindControl("MyContorlName"));
 string  test = uc.MyString;
}

ユーザーコントロールのテキストボックスがプログラムで作成された場合、値をレンダリングする方法がわかりません。

4

1 に答える 1

0

テキスト ボックスに対して同様のアプローチを取ることができますが、テキスト ボックス名をパラメーターとして受け取り、次のように返すパブリック メソッドを宣言します。

あなたのASCXで:

public TextBox GetDynamicTextBoxByID(string textBoxId)
{
  return (TextBox)Page.FindControl(textBoxId);
}

親ページで:

foreach (RepeaterItem itm in rptAttribute.Items)
{     
 MyUserControl uc = ((MyUserControlitemUserControl)itm.FindControl("MyContorlName"));
 string  test = uc.MyString;
 TextBox tx = uc.GetDynamicTextBoxByID(idOfTextBox);
}

null が返され、適切に処理されていることを確認することを忘れないでください。

于 2013-04-25T08:19:59.570 に答える