我想根据用户输入的数字即时创建多个标签。例如,如果用户在文本框中写入 10,则应使用 id label1 - label10 创建 10 个标签,并且我想在这些标签中放置单独的文本。知道如何在 asp.net 中使用 c# 清晰的代码来做到这一点吗?
问问题
3228 次
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 + "'.";
}
当然,您需要更正:
- 你的实际文本框是什么,对于
MyTextBox
- 您的标签中有什么文字。
- 将标签添加到页面的父控件
MyParentControl
。 - 号码无效时怎么办,即
MyLoggingOutput
。 - 适当的验证,例如,不允许用户输入 > 100 或 < 1 的数字。您可以使用自定义代码或验证控件(例如
RangeValidator
和)来处理CompareValidator
。
于 2012-05-21T23:31:38.413 回答