经测试system.web.ui.htmlcontrols下的htmlform类,也就是我们在传统的asp.net中使用的form表单对象,不适合动态生成html代码。
于是自定义了一个简单的HtmlForm容器控件,只需要几行代码。看来Asp.net在封装Html元素方面还是很有优势的,微软为我们定义了大量的基础结构,很容易扩展使用。
public class myHtmlForm:HtmlContainerControl
{
public myHtmlForm(): base("form")
{
this.Attributes.Add("method", "post");
}
public string Action
{
set
{
Attributes.Add("action", value);
}
}
}使用很简单,直接new,然后向Controls集合中添加控件即可。
myHtmlForm form = new myHtmlForm(); form.ID = "myform"; form.Action = "test.aspx"; HtmlInputHidden hidf= new HtmlInputHidden(); hidf.ID = hidf.Name = "hidden"; form.Controls.Add(hidf);
最后在View中,输出HTML代码到响应流。
form.RendControl(Writer);
结论:
1、系统采用.net2.0开发,数据库access2、三层架构,数据层、逻辑层和表示层分离3、系统完全使用div+css布局,可以灵活处理界面4、技术特点: 使用模板页,大大减少代码量 动态生成竖向导航菜单 ul li实现表格 各种自定义用户空间 Reapter等数据控件的灵活运用
立即学习“前端免费学习笔记(深入)”;
动态生成HTML表单就是这么简单明了。我以前可是自己拼接过HTML,然后Write啊。善于利用框架提供的类可以有效的提高开放效率,并且使代码的可读性良好。尤其是在做表格控件时,善用System.Web.UI.WebControls.Table控件,会很有帮助。










