关于动态生成表单

西门喷血 2010-11-04 03:54:41
在asp.net中我要做实现一个动态生成表单功能
用户自己添加字段和页面显示的控件存到字段表里面
然后动态生成一张数据表
然后在页面的时候动态生成控件 然后用户填写表单后读取数据存入数据库!
这种功能该如何实现呢?
以下是一些动态生成方法
//创建一个文本框
TextBox tbxName = new TextBox();
tbxName.ID = "tbxName";
tbxName.Text = "OK";
this.form1.Controls.Add(tbxName);

//创建一个按钮
Control c = ParseControl("<asp:Button Text = '按我' ID = 'myButton' runat = 'server' />");
this.form1.Controls.Add(c);

//创建一个按钮事件
Button myButton = (Button)Page.FindControl("myButton");
myButton.Command += new CommandEventHandler(this.myButton_Click);
protected void myButton_Click(Object sender, EventArgs e)
{
//查找控件
TextBox t = (TextBox)Page.FindControl("tbxName");
Response.Write(t.Text);
}
这种方法虽然可以动态生成 但是无法布局~

创建的控件在页面显示无序。。。
应该如何来写呢?谁有什么好方法!~

...全文
285 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
海の云 2010-11-04
  • 打赏
  • 举报
回复
this.form1.Controls.Add(c);
控件默认会RenderchildControl
你可以在前台设置一个服务器控件(比如 div id=“Div1” runat=server)
然后Div1.Controls.Add(c)
phil999 2010-11-04
  • 打赏
  • 举报
回复
难整,不划算
changjiangzhibin 2010-11-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 antiking 的回复:]
用Table控件来布局
TableRow tr = new TableRow();
TableCell tc0 = new TableCell();
CheckBox chk = new CheckBox();
chk.ID = "Sel" + Table1.Rows.Count;
tc0.Enabled = false;
tc0.Controls.Add(chk);
tr.Cell……
[/Quote]
每次刷新时必须重新生成一次,因此,你需要在页面中使用ViewState记住相关信息
antiking 2010-11-04
  • 打赏
  • 举报
回复
用Table控件来布局
TableRow tr = new TableRow();
TableCell tc0 = new TableCell();
CheckBox chk = new CheckBox();
chk.ID = "Sel" + Table1.Rows.Count;
tc0.Enabled = false;
tc0.Controls.Add(chk);
tr.Cells.Add(tc0);
Table1.Rows.Add(tr);
wxdxy 2010-11-04
  • 打赏
  • 举报
回复
比较困难,要拖放布局的话,就牵涉到js,我觉得是要用js库的,然后事件触发又难写了。
我以前的想法是用vs2008写代码,剩下一个问题是动态编译,但是正在用的客户的数据怎么办呢?会造成中断使用的。
要么用js全部重写,用ajax来做组件式操作数据库。
西门喷血 2010-11-04
  • 打赏
  • 举报
回复
动态创建的时候如何控制换行呢?

62,271

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧