如何从包含 UserControls 的 Repeater 中获取所有 TextBox 值?

发布于 2025-01-01 18:27:57 字数 1055 浏览 0 评论 0原文

我在 UserControl 中有一个 TextBox,并且此 UserControlRepeater 内重复。 但是,当用户用值填充 TextBox 后,我无法从 TextBox 中获取值。

default.aspx:

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

中的值填充 List

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);
        }
     }
}

button1 单击时,我尝试使用 textbox.textUserControl 代码:

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

 protected void Page_Load(object sender, EventArgs e)
 {

 }

I have one TextBox inside a UserControl, and this UserControl is repeating inside Repeater.
But, when user fills TextBox with values and after that I can't get values from TextBoxs.

default.aspx:

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

On button1 click I'm trying to fill List<string> with values from 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);
        }
     }
}

And UserControl code:

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

 protected void Page_Load(object sender, EventArgs e)
 {

 }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

滥情空心 2025-01-08 18:27:57

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

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

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

you should loop on all repeater's items and use FindControl to find your user control then call the getString method on such found instances, pseudo-code (not tested):

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

  if(itemUserControl  != null)
  {
    var itemText = itemUserControl.getString();
  }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文