[英]To generates dynamically textboxes in asp.net
我想在asp.net和c#中動態生成文本框。 此代碼只能運行一次,但我希望任何時候單擊按鈕,添加兩個文本框。
private void CreateTextBox(string ID)
{
TextBox txt = new TextBox();
txt.ID = ID;
txt.Width = Unit.Pixel(150);
txt.AutoPostBack = false;
TextBox txt2 = new TextBox();
txt2.ID = ID + "s";
txt2.Width = Unit.Pixel(100);
txt2.AutoPostBack = false;
Panel1.Controls.Add(txt);
Panel1.Controls.Add(new LiteralControl("  "));
Panel1.Controls.Add(txt2);
Panel1.Controls.Add(new LiteralControl("<br>"));
}
protected void Button2_Click(object sender, EventArgs e)
{
CreateTextBox("txtTag-" + index.ToString());
index ++;
}
index是全局靜態int變量。
問題是什么?
你需要學習asp.net的Page Life Cycle。 Http是無狀態協議服務器不記得以前的請求
您不了解使用Session
,然后跟蹤Session
變量中的索引
您可以使用ControlRenderer而不是這個,例如:
protected void btn_Click(object sender, EventArgs e)
{
TextBox textName;
textName = new TextBox();
textName.TextChanged += new EventHandler(textName_TextChanged);
string divContect = ControlRenderer(divTextBox);
divTextBox.InnerHtml = divContect + ControlRenderer(textName);
}
protected void textName_TextChanged(object sender, EventArgs e)
{
}
public string ControlRenderer(Control control)
{
StringWriter writer = new StringWriter();
control.RenderControl(new HtmlTextWriter(writer));
return writer.ToString();
}
使用此代碼
int index = 1;
while(index <=2)
{
CreateTextBox("txtTag-" + index.ToString());
index++;
}
您只能在頁面初始化階段以語用方式添加控件,請參閱ASP.NET頁面生命周期概述
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.