我在TextBox
中有一个UserControl
,而UserControl
在Repeater
内重复。
但是,当用户使用值填充TextBox
时,我无法从TextBox
获取值。
的Default.aspx:
protected void Page_Load(object sender, EventArgs e)
{
//filling repeater with dataset
Repeater1.DataSource = ds;
Repeater1.DataBind();
}
点击button1
点击我正在尝试使用List<string>
s
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
代码:
public string getString
{
get
{ return TextBox1.Text; }
}
protected void Page_Load(object sender, EventArgs e)
{
}
答案 0 :(得分:4)
你应该遍历所有转发器的项目并使用FindControl
找到你的用户控件然后在这样的找到的实例上调用getString
方法,伪代码(未测试) :
foreach(var rptItem in Repeater1.Items)
{
WebUserControl1 itemUserControl = ((WebUserControl1)rptItem .FindControl("WebUserControl1"))
if(itemUserControl != null)
{
var itemText = itemUserControl.getString();
}
}