【问题标题】:How to set 'textbox.Text' value in placeholder on User Control Page?如何在用户控制页面的占位符中设置“textbox.Text”值?
【发布时间】:2015-02-26 12:02:00
【问题描述】:

我在占位符中创建了动态文本框。我设置了 textboxID 但我想在创建 texbox(es) 时为每个文本框设置 textbox.Text 值。

用户选择在ddlUserSelected下拉列表上创建多少个文本框。 例如: 用户在下拉列表中选择 3 我创建了 3 个文本框,但我想设置每个 textbox.text 值。

这是我的代码:

<asp:DropDownList ID="ddlUserSelected" AutoPostBack="true" OnSelectedIndexChanged="ddlUserSelected_SelectedIndexChanged" runat="server">
 <asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
 <asp:Button ID="btnSave" runat="server" Text="Save" OnClick="btnSave_Click"/>

代码背后:

protected void ddlUserSelected_SelectedIndexChanged(object sender, EventArgs e)
    {
     for (int a = 1; a <= int.Parse(ddlUserSelected.SelectedItem.Text); a++)
            {

                TextBox txtDate = new TextBox();
                Label lbl = new Label();          
                lbl.Text = "<br/>";        
                txtDate .Width = 70;
                txtDate .CssClass = "tbl";
                txtDate .ID = "txtDate" + a;                  
                PlaceHolder1.Controls.Add(txtDate);            
                PlaceHolder1.Controls.Add(lbl);

                //*******HERE IS: I WANT TO SET EACH TEXTBOX VALUE*******

            }             
}

在保存按钮点击事件中获取文本框值:

protected void btnSave_Click(object sender, EventArgs e)
{

   for (int a = 1; a <= int.Parse(ddlUserSelected.SelectedItem.Text); a++)
    {              

      string vvv = Request.Form["ctl00$ctl00$cphcontent$cphmain_main$UserControl$txtDate" + a];  
        //After I send a List each value 
    }
}

感谢您的帮助

【问题讨论】:

  • 然后使用txtDate.Text="Your Value"
  • @Ganesh_Devlekar 如果我使用你的方法,所有文本框都具有相同的值。
  • @BIp 那么你的值应该是动态的
  • 您需要明确应该如何确定分配给 text 属性的值
  • @Ganesh_Devlekar 我的值也是动态的,但我对 aech 文本框有不同的数据。所以我的问题是如何在 'textbox.text' 中设置这些动态值?

标签: c# asp.net textbox placeholder


【解决方案1】:

您必须在将 TextBox 添加到占位符之前设置值:

...
txtDate.Text = "Value";          
PlaceHolder1.Controls.Add(txtDate);            
PlaceHolder1.Controls.Add(lbl);

要取回值:

for (int i = 0; i < PlaceHolder1.Controls.Count; i++)
{
    Control ctrl = PlaceHolder1.Controls[i];
    if (ctrl is TextBox)
    {
        TextBox txt = (TextBox)ctrl;
        string value = txt.Text;
    }
}

【讨论】:

  • 但是添加文本框后,使用txtDate.Text仍然可以访问吗?如果还是有问题可以改成对象数组:txtDate[i].text
猜你喜欢
  • 1970-01-01
  • 2011-12-25
  • 2019-05-01
  • 1970-01-01
  • 2018-11-13
  • 2014-06-15
  • 1970-01-01
  • 2012-03-10
  • 2012-07-22
相关资源
最近更新 更多