【问题标题】:dynamic textbox near label in C#C#中标签附近的动态文本框
【发布时间】:2012-02-17 20:15:59
【问题描述】:

很抱歉重新发布,但我还没有弄清楚如何去做。

string str = string.Empty;

 foreach (ListItem item in this.CheckBoxList1.Items)
    {
       if (item.Selected)
           {
              str += item.Value + "<br><br>";
              TextBox txt1 = new TextBox();
              form1.Controls.Add(txt1);

           }
    }

 lbl1.Text = str;

每次我检查一个值时都会弹出一个文本框,但我想将文本框放在标签中保留的每个选定值附近。所以 value1 textbox1, value2 textbox2....这是 asp.net web 应用程序。

【问题讨论】:

  • 改用Repeater或GridView,不要动态创建TextBox,只切换它的可见性。您可能希望将两者都包装在 UserControl 中。

标签: c# asp.net


【解决方案1】:

为什么要使用相同的标签?

你可以做到:

foreach (ListItem item in this.CheckBoxList1.Items)
{
   if (item.Selected)
       {
          Label label = new Label();
          label.Text = item.Value;
          TextBox txt1 = new TextBox();

          form1.Controls.Add(label);
          form1.Controls.Add(txt1);

       }
}

如果您打算从文本框中检索用户输入,您可能还必须为文本框分配 id。

但是,如果您只有有限数量的字段,您可以使用静态字段,并按照 Tim 所述更改其可见性

【讨论】:

  • 以及如何将值 str 分配给标签?
  • 如果我想像文本框一样添加日历怎么办...我该怎么做?
  • 做一些实验,与添加一个控件没有太大区别。
  • 如何在每个文本框后放置一个
  • Form.Controls.Add(new LiteralControl("
    "));
【解决方案2】:

我真的不知道你打算做什么,但你为什么不使用相同的 y 坐标但交替的 x 坐标为标签对象和文本框对象定义一个 CSS 类。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-10
    • 2019-04-20
    相关资源
    最近更新 更多