什么是WebForm
WebForm诞生于2002年
WebForm是微软开发的一款产品,它将用户的请求和响应都封装为控件。
WebForm负责封装用于用户端显示的数据。
在EasyJWeb中,WebForm是一个非常重要,也是使用最为频繁的对象,他充当了在视图及程序之间传输、处理数据的媒介。
常用方法
1、WebForm中包含了视图页面中传输进来的数据,可以通过Request.Form.Get("键名")的方式来读取这些数据。由于提交过来的form表单只有只读属性,说以只能使用Get方法获取表单中的值,而不能添加或修改表单里面的值。
2.如果需要更多的用法,请参考EasyJWeb的教程;
WebForm控件
HTML控件
asp .net将HTML控件当做普通字符串渲染到浏览器端(不做任何处理)
asp .net控件
经过asp .net高度封装的控件(运行在服务器端/渲染到浏览器端)
HTML控件
运行在服务器端/渲染到浏览器端/部分封装(属性多为HTML属性)与asp .net控件相比优点: ①操作方便②会对虚拟路径 id→ClientID进行处理
WebForm控件的运行
点击ASP按钮会先执行Page_Load事件,然后才会去执行相应的Button_Click()事件。
WebForm的一个关键点就是PostBack,无论你点击哪一个ASP.NET服务器按钮都会回发到服务器端。而Html控件除非点击submit控件其余是不会回发的。
但是也可以设定点击的控件是否需要回发的服务器端。如果设置ASP.NET的控件AutoPostBack="false"那么点击这个按钮是不会回发到服务器端的,同样不会造成页面刷新。
protected void Page_Load(object sender,EventArgs e)
{
if(!Page.ISPostBack)
{
//TODO:界面初始化工作,如果不在这里面那么每次点击按钮回发的时候,都会先把这里面的方法执行一次,可能会破坏提交过来表单数据准确性和数据完整性。
}
}
WebForm优点
1.编写简便,所看见的页面就是最后运行的界面,提高了开发效率。
2.支持事件模型开发。有丰富的服务器组件。 //ASP.NET服务器控件和javascript都事件模型,事件源将事件发送给一个或多个监听器,监听器只要接收到事件,监听器将处理这些事件。
3.控件丰富。
WebForm缺点
1.封装太强,很多底层的东西初学者不是很明白。
2.自定义控制不灵活。
3.ViewState处理。
这里要讲出ViewState的使用中对于开发过程中肯定是非常的方面可以像Session一样的在客户端存放一些零时数据和变量,因为他耗费的服务器资源较少(与Application和Session相比)。默认情况下.NET系统默认对状态数据进行维护,并且适用于任意浏览器。
但是在出现他之后随之引起的问题,首先性能问题,用户显示页和发送页时的速度仍然可能减慢。设备限制。移动设备可能没有足够的内存容量来存储大量的视图状态数据。潜在的安全风险。视图状态存储在页上的一个或多个隐藏域中。虽然视图状态以哈希格式存储数据,但它可以被篡改。
使用WebForm一些小技巧
labTitle.Text = value.ToString().Trim().Replace(System.Environment.NewLine,"<br />");//让输入框中的换行转换成为一个网页显示的回车符号。
Response.Redirect(Request.Url.ToString()); //表示通知浏览器需要刷新本页
以流形式下载文件首先需要把Response.Clear();//清除Response中的数据,如果不清除Response里面的遗留数据可能会导致下载的文件存在乱码。
WebForm前台JS调用后台代码
1.后台要被调用的函数ss()
public string ss()
{
return("a");
}
2.前台js调用示例:
<script language=javascript>
var a = "<%=ss()%>";
alert(a);
</script>