C# 在asp.net中动态生成文本框的步骤
我想在asp.net和c#中动态生成文本框。 这个代码只工作一次,但我想在任何时候点击按钮,添加两个文本框C# 在asp.net中动态生成文本框的步骤,c#,asp.net,dynamically-generated,C#,Asp.net,Dynamically Generated,我想在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.
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 ++;
}
private void CreateTextBox(字符串ID)
{
TextBox txt=新的TextBox();
txt.ID=ID;
txt.Width=单位像素(150);
txt.AutoPostBack=false;
TextBox txt2=新的TextBox();
txt2.ID=ID+“s”;
txt2.宽度=单位像素(100);
txt2.AutoPostBack=false;
Panel1.Controls.Add(txt);
面板1.控制。添加(新的文字控制(“ ”);
面板1.控件。添加(txt2);
Panel1.Controls.Add(新的LiteralControl(“
”);
}
受保护的无效按钮2\u单击(对象发送者,事件参数e)
{
CreateTextBox(“txtTag-”+index.ToString());
索引++;
}
索引是全局静态int变量
问题是什么?您需要了解asp.net的页面生命周期。 Http是一种无状态协议,服务器不记得以前请求的任何内容 您不知道如何使用
会话
,然后跟踪会话
变量中的索引使用此代码吗
int index = 1;
while(index <=2)
{
CreateTextBox("txtTag-" + index.ToString());
index++;
}
int索引=1;
虽然(index您只能在页面的初始化阶段实际添加控件,请参见您可以使用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();
}
我知道会话,但如何使用它?请给我一个例子?我应该在会话或文本框中添加面板?谢谢。这是工作,但TextChanged和ControlRenderer是什么?TextChanged是文本框提供的一个事件,如果用户更改了文本框中的任何文本,您希望执行一些代码,那么您可以将其放入me中thodtextName\u TextChanged
如果不想处理此事件,只需删除该方法和行textName.TextChanged+=neweventhandler(textName\u TextChanged);