我想动态地生成文本框和下拉框作为html表列。就像这样我想创建30行。如何在asp.net和c#.net中执行此操作?我想在asp.net页面中这样做。
答案 0 :(得分:4)
protected void Page_Load(object sender, EventArgs e)
{
TextBox txtbx= null;
DropDownList ddl = null;
for (int i = 0; i < 4; i++)
{
txtbx= new TextBox();
txtbx.ID = "mytxt" + i;
txtbx.Text = "mytxt" + i;
pnlButton.Controls.Add(txtbx);
ddl= new DropDownList();
ddl.ID = "mydropdown " + j;
ddl.Text = "mydropdown " + j;
ddl.Items.Add("Hii");
ddl.Items.Add("Hello");
ddl.AutoPostBack = true;
ddl.SelectedIndexChanged += new EventHandler(ddl_Click);
pnlButton.Controls.Add(ddl);
Literal lit = new Literal();
lit.Text = "</br></br>";
pnlButton.Controls.Add(lit);
}
}
答案 1 :(得分:3)
在aspx页面上,使用面板以正确的方式显示控件,以及用于保存数据的按钮
<asp:Panel ID="pnlQuestions" runat="server" Width="100%">
</asp:Panel>
<asp:LinkButton ID="lbtnNext" runat="server" CssClass="button" ToolTip="Next"
OnClick="lbtnNext_Click"><span>Save & Next</span></asp:LinkButton>
在aspx.cs页面后面的代码中,您可以在Page_Init事件上生成所有动态控件
protected void Page_Init(object sender, EventArgs e)
{
TextBox txt = new TextBox();
txt.Text = QuestionText;
txt.ID = "que1";
pnlQuestions.Controls.Add(txt);
}
您可以按此按钮点击事件获取所有动态控制值
protected void lbtnNext_Click(object sender,EventArgs e)
{
TextBox txt = ((TextBox)pnlQuestions.FindControl("que1"));
AnswerText = txt.Text.Trim();
Response.Write(AnswerText);
}
通过使用此方法,您可以在asp.net页面上生成和获取动态控件。
更多理解:Check this link
答案 2 :(得分:2)
首先,你需要像
这样的东西<asp:Table ID="mytbl" runat="server">
</asp:Table>
在后面的代码中,您可以添加为
TableRow trow;
TableCell tcell1, tcell2;
for (int i = 0; i < 30; i++)
{
trow = new TableRow();
tcell1 = new TableCell();
tcell1.Controls.Add(new TextBox());
tcell2 = new TableCell();
tcell2.Controls.Add(new DropDownList());
trow.Cells.Add(tcell1);
trow.Cells.Add(tcell2);
mytbl.Rows.Add(trow);
}
根据需要添加ID,名称和下拉项目的详细信息
答案 3 :(得分:1)
protected void Page_Load(object sender, EventArgs e)
{
TextBox box = new TextBox{ID="textbox1", Text="hello :)"};
form1.Controls.Add(box);
}