Prepare
- webform中是靠什么实现像开发WinForm程序那样的事件驱动开发的?
- 控制反转Ioc,也可说是利用回调函数。通过向页面与控件的事件注册方法来实现。可这么想象,通过浏览器端提交的信息,即Request.Form中的控件名,来判断要触发哪个事件,即执行注册了这个事件的方法。诸如某个点击事件,如下。这样就是一个回调函数,供底层调用。protected void Button1_Click(object sender, EventArgs e)
{
//......
}
- 控制反转Ioc,也可说是利用回调函数。通过向页面与控件的事件注册方法来实现。可这么想象,通过浏览器端提交的信息,即Request.Form中的控件名,来判断要触发哪个事件,即执行注册了这个事件的方法。诸如某个点击事件,如下。这样就是一个回调函数,供底层调用。
- ViewState、doPostBack的内部原理是什么样的 ?
- viewstate用于存储页面和控件的状态,会做base64编码。比较lable和textbox在无viewstate的区别。<input type="hidden" name="__VIEWSTATE" value="">此隐藏域用于存储页面的viewsate.
- fgfj
- dopostback,大部分回传都靠以下这个js方法进行回传,除了button和imagebuttom。 button和imagebuttom这两个控件的Id会传入Request.Form作为key.而其它触发回传的控件的Id会放入Request.Form中key为“__EventTarget”的value中。
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
- viewstate用于存储页面和控件的状态,会做base64编码。
- webform中数据绑定是怎么实现的?
- 你会写一个webform控件吗?
- 如果要你重新实现一个webform,你会怎么做?