加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 如何从包含UserControls的Repeater获取所有TextBox值

发布时间:2020-12-16 10:01:39 所属栏目:asp.Net 来源:网络整理
导读:我在UserControl中有一个TextBox,这个UserControl在Repeater中重复. 但是,当用户使用值填充TextBox时,之后我无法从TextBoxs获取值. Default.aspx的: protected void Page_Load(object sender,EventArgs e){ //filling repeater with dataset Repeater1.Data
我在UserControl中有一个TextBox,这个UserControl在Repeater中重复.
但是,当用户使用值填充TextBox时,之后我无法从TextBoxs获取值.

Default.aspx的:

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

在按钮1上单击我正在尝试填充列表< string>使用textbox.texts中的值

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)
 {

 }

解决方法

你应该循环所有转发器的项目并使用FindControl找到你的用户控件然后在这样的找到的实例上调用getString方法,伪代码(未测试):

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读