簡體   English   中英

在asp.net中動態生成文本框

[英]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("&nbsp&nbsp"));
    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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM