1

我想根据用户输入的数字即时创建多个标签。例如,如果用户在文本框中写入 10,则应使用 id label1 - label10 创建 10 个标签,并且我想在这些标签中放置单独的文本。知道如何在 asp.net 中使用 c# 清晰的代码来做到这一点吗?

4

2 回答 2

0

读取文本框值并执行循环,在其中创建标签控件对象并设置 ID 和文本属性值

int counter = Convert.ToInt32(txtCounter.Text);
for(int i=1;i<=counter;i++)
{
   Label objLabel = new Label();
   objLabel.ID="label"+i.ToString();
   objLabel.Text="I am number "+i.ToString();

   //Control is ready.Now let's add it to the form 
   form1.Controls.Add(objLabel);
}

假设txtCounter是 TextBox 控件,用户在其中输入要创建的标签数量,而 form1 是页面中具有 runat="server" 属性的表单。

于 2012-05-21T23:31:16.063 回答
0

类似以下内容应该可以帮助您入门。

// get user input count from the textbxo
string countString = MyTextBox.Text;
int count = 0;

// attempt to convert to a number
if (int.TryParse(countString, out count))
{
    // you would probably also want to validate the number is
    // in some range, like 1 to 100 or something to avoid
    // DDOS attack by entering a huge number.

    // create as many labels as number user entered
    for (int i = 1; i <= count; i++)
    {
        // setup label and add them to the page hierarchy
        Label lbl = new Label();
        lbl.ID = "label" + i;
        lbl.Text = "The Label Text.";
        MyParentControl.Controls.Add(lbl);
    }
}
else
{
    // if user did not enter valid number, show error message
    MyLoggingOutput.Text = "Invalid number: '" + countString + "'.";
}

当然,您需要更正:

  1. 你的实际文本框是什么,对于MyTextBox
  2. 您的标签中有什么文字。
  3. 将标签添加到页面的父控件MyParentControl
  4. 号码无效时怎么办,即MyLoggingOutput
  5. 适当的验证,例如,不允许用户输入 > 100 或 < 1 的数字。您可以使用自定义代码或验证控件(例如RangeValidator和)来处理CompareValidator
于 2012-05-21T23:31:38.413 回答