关于程序执行与session问题,请各位指教(在线等)
程序如下: 
 protected   void   Page_Load(object   sender,   EventArgs   e) 
 { 
             if(Session[ "userID "]==null) 
                         Response.Write( " <SCRIPT   LANGUAGE=javascript> alert( '对不起,请您先登录! ');window.location= 'login.aspx '; </SCRIPT>  "); 
             if(!Page.IsPostBack) 
                         bindData(); 
 } 
 private   void   bindData() 
 { 
             if(Session[ "userID "].ToString()== "1 ") 
                         Response.Write( " <SCRIPT   LANGUAGE=javascript> alert( '您是超级管理员! '); </SCRIPT>  "); 
 }   
 我在Page_Load中已经判断了Session[ "userID "]是否为空,如果为空就转入 'login.aspx ',可是当运行的时候,发现不管Session[ "userID "]是否为空,bindData()方法都要执行,并且出现“
未将对象引用设置到对象的实例”的错误,请大侠指教,为什么Session[ "userID "]为空,bindData函数还要执行。 
 谢谢!
------解决方案--------------------if(Session[ "userID "]==null) 
 { 
 Response.Write( " <SCRIPT LANGUAGE=javascript> alert( '对不起,请您先登录! ');window.location= 'login.aspx '; </SCRIPT>  "); 
 } 
 else 
 { 
 if(!Page.IsPostBack) 
 bindData(); 
 } 
 }
------解决方案--------------------哈哈,被说了,你写一个if... esle....判断语句不就行了 
 不然的话就加一个return应该也可以 
 protected void Page_Load(object sender, EventArgs e) 
 { 
 if(Session[ "userID "]==null) 
 { 
 Response.Write( " <SCRIPT LANGUAGE=javascript> alert( '对不起,请您先登录! ');window.location= 'login.aspx '; </SCRIPT>  "); 
 return ;//在这里加一个return 如果出现userID为空就结束程序的执行,不让它执行下面语句。  
 } 
 if(!Page.IsPostBack) 
 bindData(); 
 } 
 private void bindData() 
 { 
 if(Session[ "userID "].ToString()== "1 ") 
 Response.Write( " <SCRIPT LANGUAGE=javascript> alert( '您是超级管理员! '); </SCRIPT>  "); 
 }   
------解决方案--------------------if(Session[ "userID "]==null) 
 Response.Write( " <SCRIPT LANGUAGE=javascript> alert( '对不起,请您先登录! ');window.location= 'login.aspx '; </SCRIPT>  "); 
 if(!Page.IsPostBack) 
 bindData(); 
 }   
 因为Response.Write并不代表程序就结束了,虽然你写了window.location= 'login.aspx ';,但这个也是要到客户端才能执行的,所以代码会一直向下走,所以会执行bindData();