Prepare

  • webform中是靠什么实现像开发WinForm程序那样的事件驱动开发的?
    • 控制反转Ioc,也可说是利用回调函数。通过向页面与控件的事件注册方法来实现。可这么想象,通过浏览器端提交的信息,即Request.Form中的控件名,来判断要触发哪个事件,即执行注册了这个事件的方法。诸如某个点击事件,如下。这样就是一个回调函数,供底层调用。
      protected void Button1_Click(object sender, EventArgs e)
              {
                  
      //......
              }
  • ViewState、doPostBack的内部原理是什么样的 ?
    • viewstate用于存储页面和控件的状态,会做base64编码。
      <input type="hidden" name="__VIEWSTATE" value="">
      此隐藏域用于存储页面的viewsate.
      比较lable和textbox在无viewstate的区别。
    • 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();
          }
      }
       

       

  • webform中数据绑定是怎么实现的?
  • 你会写一个webform控件吗?
  • 如果要你重新实现一个webform,你会怎么做?
posted @ 2011-08-22 14:42  苏先森1989  阅读(137)  评论(0编辑  收藏  举报