2013-05-28 5 views
0

Я хочу генерировать динамически текстовое поле в asp.net и C#. Этот код работает только один раз, но я хочу, чтобы каждый раз нажимал кнопку, добавляли два текстовых поля.Чтобы генерировать динамически текстовые поля в asp.net

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 ++; 
} 

индекс - глобальная статическая переменная int.

В чем проблема?

ответ

1

вы можете использовать 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(); 
} 
+0

Спасибо. Это работа, но что такое TextChanged и ControlRenderer? – NASRIN

+0

TextChanged - это событие, которое предоставляется текстовым полем в случае, если вы хотите, чтобы какой-либо код выполнялся, когда пользовательский текст в текстовом поле был изменен пользователем, тогда вы можете поместить его в метод 'textName_TextChanged', если вы не хотите обрабатывать это событие затем просто удалите метод и строку 'textName.TextChanged + = new EventHandler (textName_TextChanged);' –

1

U необходимо изучить жизненный цикл страницы asp.net. Http это протокол Сервер ничего не помнит о предыдущих запросах

Y не у Подробнее об использовании Session, а затем следить за индексом в Session переменной

+0

Я знаю сессию, но как это использовать? Можете привести мне пример, пожалуйста? Я должен добавить панель в сеанс или текстовые поля? – NASRIN

0

Используйте этот код

int index = 1; 
while(index <=2) 
{ 
    CreateTextBox("txtTag-" + index.ToString()); 
    index++; 
} 
0

вы можете добавить элементы управления прагматично только во время этапа инициализации страницы, см ASP.NET Page Life Cycle Overview

Смежные вопросы