JARY

技術學習
 
 

Powered by: 博客园
模板提供:沪江博客
博客园 | 首页 | 发新随笔 | 发新文章 | 联系 | 订阅订阅 | 管理

2012年5月31日

关于vs2005、vs2008和vs2010项目互转的总结 .

关于vs2005和vs2008、vs2008和vs2010、vs2005和vs2010项目互转的问题,

关于这个问题有两层含义:一种是通过高版本的编译器打开低版本的项目,进行升级;一种是通过修改Soultion文件和Project文件,可以打开编译。第一种方法,相信大家都可以做到。我主张用第二种方法,这种方法灵活多变,既可以从低版本升级到高版本,又可以从高版本转换到低版本。

那么下面我给大家讲一下,通过vs2005的项目升级到vs2008项目的步骤,下面是vs2005的一项目:

<一> Visual Studio 2005项目-〉Visual Studio 2008项目,Visual Studio 2008项目->Visual Studio 2005项目

(1) 需要修改ListViewColor解决方案文件,将红框处版本9.00改为10.00;将Visual Studio 2005改为Visual Studio 2008,如下图:

(2) 打开ListViewColor文件夹,用记事本打开ListViewColor工程文件。将第一行添加ToolsVersion="3.5",如图所示:

将MSBuildBinPath改为MSBuildToolsPath,如下图所示:

现在打开ListViewColor解决方案文件,就可以打开该项目了。

(3) 如果想把改项目彻底升级到.NET Framework 3.5,可以在解决方案管理器右击工程文件-〉属性,修改目标框架,如图示:

到此,vs2005项目转化vs2008项目已经成功。如果想把vs2008项目转换成vs2005项目,可以按照逆向方法,完成项目转化。

<二> Visual Studio 2008项目-〉Visual Studio 2010项目,Visual Studio 2010项目->Visual Studio 2008项目

(1) 我们以上面用到的项目为例,用记事本打开ListViewColor解决方案文件,将版本号10.00改为11.00,将Visual Studio 2008改为Visual Studio 2010,如下图:

(2) 打开ListViewColor文件夹,用记事本打开ListViewColor工程文件。将第一行ToolsVersion="3.5"改为ToolsVersion="4.0",如图所示:

至此,我们完成了从vs2008项目转换到vs2010项目,现在双击ListViewColor解决方案文件,是不是可以打开了。

(3) 接下来,我们看看属性框架版本吧。

通过几个步骤,表明我们已经从vs2008项目转化成了vs2010项目了;从vs2010项目转化vs2008项目,同样可以通过逆向方法操作,达到你的目的。

<三> Visual Studio 2005项目-〉Visual Studio 2010项目,Visual Studio 2010项目->Visual Studio 2005项目

(1) 从vs2005项目转成vs2010项目,需要注意的是将ListViewColor解决方案中的版本号9.00改为11.00,Visual Studio 2005修改成Visual Studio 2010。

(2) 从vs2005项目转成vs2010项目,在ListViewColor工程文件中的第一行添加ToolsVersion="4.0",将MSBuildBinPath改为MSBuildToolsPath即可。

(3) 从vs2010项目转成vs2005项目,通过以上方法,进行逆向操作,即可完成转化。

通过多年的经验积累和学习借鉴,根据自己的专研摸索,这些方法是行之有效的。希望正在学习Visual Studio.NET的朋友或者兄弟姐妹少走弯路,供大家学习参考

posted @ 2012-05-31 16:18 博客- 博客 阅读(7) 评论(0) 编辑
 
asp.net下ajax.ajaxMethod使用方法

使用AjaxMethod要满足一下几点:
1。如果还没有ajax.dll文件,就先下载一个来
2。将ajax.dll添加到项目引用中:在VS的解决方案资源管理器中右键点击项目名称--“添加项目引用”--浏览,找到ajax.dll确定
3。webCofig中<httpHandlers>加上<add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax"/>节点
如果是IIS7,则需要在<system.webServer></system.webServer>里加上<add name="ajax" verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" />
2:在CS程序中加上
protected void Page_Load(objectsender,EventArgse)
{
Ajax.Utility.RegisterTypeForAjax(typeof(ClassName));//ClassName是这个CS文件的类名
}
3:编写CS方法,方法前加上[Ajax.AjaxMethod()],
如果要使AjaxMethod里面能调用session,写成:[Ajax.AjaxMethod(HttpSessionStateRequirement.Read)] ,
如: 
代码如下:
[Ajax.AjaxMethod()]
public string GetAddress(string UserID)
{
string Address="";
//do somthing to get the address here
return Address;
}

注意方法要写成public,否则在JS里调用的时候会提示“不支持此属性或方法”

4。确保页面中有<form runat="server"></form>标签。

5。ASPX的JAVASCRIPT中调用时加上类名 ,如:
var address = ClassName.GetAddress('123').value;

posted @ 2012-05-31 16:12 博客- 博客 阅读(3) 评论(0) 编辑
 

2012年5月30日

javascript In ASP.NET 常用脚本
常见的对联浮动广告效果的代码使用方法,介绍的这种效果,在1024*768分辨率下正常显示,在800*600的分辨率下可以自动隐藏,以免遮住页面影响访问者浏览内容,下面就是实现效果所需代码:

  CODE:   
    var delta=0.015
    var collection;
    function floaters() {
        this.items    = [];
        this.addItem    = function(id,x,y,content)
                  {
                    document.write('<DIV id='+id+' style="Z-INDEX: 0; POSITION: absolute;  width:80px; height:60px;left:'+(typeof(x)=='string'?eval(x):x)+';top:'+(typeof(y)=='string'?eval(y):y)+'">'+content+'</DIV>');
                  
                    var newItem                = {};
                    newItem.object            = document.getElementById(id);
                    newItem.x                = x;
                    newItem.y                = y;

                    this.items[this.items.length]        = newItem;
                  }
        this.play    = function()
                  {
                    collection                = this.items
                    setInterval('play()',10);
                  }
        }
        function play()
        {
            if(screen.width<=800)
            {
                for(var i=0;i<collection.length;i++)
                {
                    collection[i].object.style.display    = 'none';
                }
                return;
            }
            for(var i=0;i<collection.length;i++)
            {
                var followObj        = collection[i].object;
                var followObj_x        = (typeof(collection[i].x)=='string'?eval(collection[i].x):collection[i].x);
                var followObj_y        = (typeof(collection[i].y)=='string'?eval(collection[i].y):collection[i].y);

                if(followObj.offsetLeft!=(document.body.scrollLeft+followObj_x)) {
                    var dx=(document.body.scrollLeft+followObj_x-followObj.offsetLeft)*delta;
                    dx=(dx>0?1:-1)*Math.ceil(Math.abs(dx));
                    followObj.style.left=followObj.offsetLeft+dx;
                    }

                if(followObj.offsetTop!=(document.body.scrollTop+followObj_y)) {
                    var dy=(document.body.scrollTop+followObj_y-followObj.offsetTop)*delta;
                    dy=(dy>0?1:-1)*Math.ceil(Math.abs(dy));
                    followObj.style.top=followObj.offsetTop+dy;
                    }
                followObj.style.display    = '';
            }
        }   
      
    var theFloaters        = new floaters();
    theFloaters.addItem('followDiv1','document.body.clientWidth-100',0,'</a><br><a href=广告链接地址 target=_blank><img src=广告图片地址 width=100 height=400 border=0></a>');
    theFloaters.addItem('followDiv2',0,0,'<br><a href=广告链接地址 target=_blank><img src=广告图片地址 width=100 height=400 border=0></a>');
    theFloaters.play();  


把上面的代码另存为一个JS文件,然后在想实现此效果的页面用 调用即可!注意修改广告图片地址和连接地址!

[鼠标感应]

与前面一个代码不同的是,当鼠标移动到广告图片上是可以感应显示另外设置好的广告大图效果,下面就是实现效果所需代码:

  CODE:   
function bigshow(){
document.all.div_250.style.visibility = 'visible';
document.all.div_80.style.visibility = 'hidden';
}
function bighide(){
document.all.div_80.style.visibility = 'visible';
document.all.div_250.style.visibility = 'hidden';
}

var ad_80= new Array(1);
var ad_250= new Array(1);

ad_80[0]="<a href=http://www.dfeng.net target=_blank><img src=/skin/adv43/ad/ad_ad.gif border=0></a>";
ad_250[0]="<a href=http://www.dfeng.net target=_blank><img src=/skin/adv43/ad/ad_ad2.gif border=0></a>";

var imgheight;
var fubioleft;
window.screen.width>800 ? fubioleft=15:fubioleft=15

document.write('<DIV id=floater_left style="Z-INDEX: 25; LEFT:'+fubioleft+'px; WIDTH: 28px;POSITION: absolute; TOP: 42px; HEIGHT: 22px">');

ad_now = new Date();
ad_id= ad_now.getSeconds() %1



var adhead1="<div id=div_80 style='position:absolute; width:95px; height:62px; z-index:12' onMouseOver=bigshow();>";
var adhead2="</div><div id=div_250 style='position:absolute;  visibility: hidden; z-index:13;width: 80; height: 60'  onMouseOut=bighide();>";

//var adhead1="<div id=div_80 style='position:absolute; width:95px; height:62px; z-index:20' onMouseOut='//MM_showHideLayers(/"div_250/",/"/",/"hide/")' onMouseOver='MM_showHideLayers(/"div_250/",/"/",/"show/")'>";
//var adhead2="</div><div id=div_250 style='position:absolute; z-index:21;visibility: hidden; width: 80; height: 60' onMouseOver='MM_showHideLayers(/"div_250/",/"/",/"show/")' onMouseOut='MM_showHideLayers(/"div_250/",/"/",/"hide/")'>";

document.write(adhead1+ad_80[ad_id]+adhead2+ad_250[ad_id]+"</div>");



document.write ("</div>");
self.onError=null;
currentX = currentY = 0;
     whichIt = null;         
     lastScrollX = 0; lastScrollY = 0;
     NS = (document.layers) ? 1 : 0;
     IE = (document.all) ? 1: 0;   
     function heartBeat() {
      if(IE) {
  diffY = document.body.scrollTop;
  diffX = document.body.scrollLeft; }
             if(NS) {
   diffY = self.pageYOffset; diffX = self.pageXOffset; }
      if(diffY != lastScrollY) {
                     percent = .5 * (diffY - lastScrollY);
                     if(percent > 0) percent = Math.ceil(percent);
                     else percent = Math.floor(percent);
         if(IE) document.all.floater_left.style.pixelTop += percent;
         if(NS) document.floater_left.top += percent;
                     lastScrollY = lastScrollY + percent;
         }
      if(diffX != lastScrollX) {
       percent = .5 * (diffX - lastScrollX);
       if(percent > 0) percent = Math.ceil(percent);
       else percent = Math.floor(percent);
       if(IE) document.all.floater_left.style.pixelLeft += percent;
       if(NS) document.floater_left.left += percent;
       lastScrollX = lastScrollX + percent;
      }
     }

     if(NS || IE) action = window.setInterval("heartBeat()",1);var ad_80= new Array(1);
var ad_250= new Array(1);

ad_80[0]="<a href=http://www.dfeng.net target=_blank><img src=/skin/adv43/ad/ad_ad.jpg border=0></a>";
ad_250[0]="<a href=http://www.dfeng.net target=_blank><img src=/skin/adv43/ad/ad_ad.jpg border=0></a>";

var imgheight;
var fubioleft;
window.screen.width>800 ? fubioleft=15:fubioleft=15

document.write('<DIV id=floater_right style="Z-INDEX: 25; LEFT:'+fubioleft+'px; WIDTH: 28px;POSITION: absolute; TOP: 42px; HEIGHT: 22px">');

ad_now = new Date();
ad_id= ad_now.getSeconds() %1


function myload()
{
if (navigator.appName == "Netscape")
{
document.div_right_80.pageX=+window.innerWidth-130;
document.div_right_250.pageX=+window.innerWidth-300;
mymove();
}
else
{
div_right_80.style.left=document.body.offsetWidth-130;
div_right_250.style.left=document.body.offsetWidth-300;
mymove();
}
}

function mymove()
{
if(document.ns)
{
document.div_right_80.left=pageXOffset+window.innerWidth-130;
document.div_right_250.left=pageXOffset+window.innerWidth-300;
setTimeout("mymove();",20)
}
else
{
div_right_80.style.left=document.body.scrollLeft+document.body.offsetWidth-145;
div_right_250.style.left=document.body.scrollLeft+document.body.offsetWidth-300;
setTimeout("mymove();",20)
}
}



var adhead1="<div id=div_right_80 style='position:absolute; width:95px; height:60px; z-index:12' onMouseOver=bigshow_right();>";
var adhead2="</div><div id=div_right_250  style='position:absolute;  visibility: hidden; z-index:13;width: 250; height: 250' onMouseOut=bighide_right();><div align=right>";

document.write(adhead1+ad_80[ad_id]+adhead2+ad_250[ad_id]+"</div></div>");

myload()

document.write ("</div>");
self.onError=null;
currentX_right = currentY_right = 0;
     whichIt_right = null;         
     lastScrollX_right = 0; lastScrollY_right = 0;
     NS = (document.layers) ? 1 : 0;
     IE = (document.all) ? 1: 0;   
     function heartBeat_right() {
      if(IE) {
  diffY_right = document.body.scrollTop;
  diffX_right = document.body.scrollLeft; }
             if(NS) {
   diffY_right = self.pageYOffset; diffX_right = self.pageXOffset; }
      if(diffY_right != lastScrollY_right) {
                     percent_right = .5 * (diffY_right - lastScrollY_right);
                     if(percent_right > 0) percent_right = Math.ceil(percent_right);
                     else percent_right = Math.floor(percent_right);
         if(IE) document.all.floater_right.style.pixelTop += percent_right;
         if(NS) document.floater_right.top += percent_right;
                     lastScrollY_right = lastScrollY_right + percent_right;
         }
      if(diffX_right != lastScrollX_right) {
       percent_right = .5 * (diffX_right - lastScrollX_right);
       if(percent_right > 0) percent_right = Math.ceil(percent_right);
       else percent_right = Math.floor(percent_right);
       if(IE) document.all.floater_right.style.pixelLeft += percent_right;
       if(NS) document.floater_right.left += percent_right;
       lastScrollX_right = lastScrollX_right + percent_right;
      }
     }

     if(NS || IE) action = window.setInterval("heartBeat_right()",1);
function bigshow_right(){
document.all.div_right_250.style.visibility = 'visible';
document.all.div_right_80.style.visibility = 'hidden';
}
function bighide_right(){
document.all.div_right_80.style.visibility = 'visible';
document.all.div_right_250.style.visibility = 'hidden';
}document.write('');
document.write('');
document.write('');


把上面的代码另存为一个JS文件,然后在想实现此效果的页面用

  CODE:   
<script type="text/javascript" language="javascript1.2" src="*.js"></SCRIPT>


调用即可,*代表你另存的文件名!注意修改广告图片地址和连接地址!

[允许关闭]

与前面两个代码不同的是,广告图下方增加了一个图片按纽,允许访客点击关闭广告图片,下面文本框中就是实现效果所需代码:




  CODE:   
var delta=0.015;
var collection;
var closeB=false;
function floaters() {
  this.items = [];
  this.addItem = function(id,x,y,content)
      {
     document.write('<DIV id='+id+' style="Z-INDEX: 10; POSITION: absolute;  width:80px; height:60px;left:'+(typeof(x)=='string'?eval(x):x)+';top:'+(typeof(y)=='string'?eval(y):y)+'">'+content+'</DIV>');
   
     var newItem    = {};
     newItem.object   = document.getElementById(id);
     newItem.x    = x;
     newItem.y    = y;

     this.items[this.items.length]  = newItem;
      }
  this.play = function()
      {
     collection    = this.items
     setInterval('play()',30);
      }
  }
  function play()
  {
   if(screen.width<=800 || closeB)
   {
    for(var i=0;i<collection.length;i++)
    {
     collection[i].object.style.display = 'none';
    }
    return;
   }
   for(var i=0;i<collection.length;i++)
   {
    var followObj  = collection[i].object;
    var followObj_x  = (typeof(collection[i].x)=='string'?eval(collection[i].x):collection[i].x);
    var followObj_y  = (typeof(collection[i].y)=='string'?eval(collection[i].y):collection[i].y);

    if(followObj.offsetLeft!=(document.body.scrollLeft+followObj_x)) {
     var dx=(document.body.scrollLeft+followObj_x-followObj.offsetLeft)*delta;
     dx=(dx>0?1:-1)*Math.ceil(Math.abs(dx));
     followObj.style.left=followObj.offsetLeft+dx;
     }

    if(followObj.offsetTop!=(document.body.scrollTop+followObj_y)) {
     var dy=(document.body.scrollTop+followObj_y-followObj.offsetTop)*delta;
     dy=(dy>0?1:-1)*Math.ceil(Math.abs(dy));
     followObj.style.top=followObj.offsetTop+dy;
     }
    followObj.style.display = '';
   }
  }
  function closeBanner()
  {
   closeB=true;
   return;
  }

var theFloaters  = new floaters();
//
theFloaters.addItem('followDiv1','document.body.clientWidth-100',0,'<a onClick="closeBanner();" href=http://www.dfeng.net target=_blank><img src=ad/doublead/right.gif width=100 height=554 border=0></a><br><br><img src=ad/doublead/close.gif onClick="closeBanner();">');
theFloaters.addItem('followDiv2',0,0,'<a onClick="closeBanner();" href=http://www.dfeng.net target=_blank><img src=ad/doublead/ad_ad.gif width=100 height=400 border=0 ></a><br><br><img src=ad/doublead/close.gif onClick="closeBanner();">');
theFloaters.play();


把上面的代码另存为一个JS文件,然后在想实现此效果的页面用 调用即可,*代表你另存的文件名!注意修改广告图片地址和连接地址!

浮动对联广告---之左侧代码

如果您想只有一侧显示的话,下面是实现左侧效果所需代码:

  CODE:
var ad_float_left_src ="图片地址";
var ad_float_left_url ="地址";
var ad_float_left_type = "";
document.ns = navigator.appName == "Microsoft Internet Explorer"

var imgheight_close
var imgleft
window.screen.width>800 ? imgheight_close=120:imgheight_close=120
window.screen.width>800 ? imgleft=8:imgleft=122
function myload()
{
myleft.style.top=document.body.scrollTop+document.body.offsetHeigh
t-imgheight_close;
myleft.style.left=imgleft;
leftmove();
}
function leftmove()
{
myleft.style.top=document.body.scrollTop+document.body.offsetHeigh
t-imgheight_close;
myleft.style.left=imgleft;
setTimeout("leftmove();",50)
}

function MM_reloadPage(init) {  //reloads the window if Nav4
resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&
(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight;
onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!
=document.MM_pgH) location.reload();
}
MM_reloadPage(true)

function close_float_left(){
myleft.style.visibility='hidden';
}

document.write("<div id=myleft style='position:
absolute;width:80;top:300;left:5;visibility: visible;z-index: 1'>"
+"<style>"
+"A.closefloat:link,A.refloat:visited {text-
decoration:none;color:#000000;font-size:12px}"
+"A.closefloat:active,A.refloat:hover {text-decoration:underline;color:#0000FF;font-size:12px}"
+"</style>"
+"<table border=0 cellpadding=0 cellspacing=0><tr><td>");

if(document.ns){
if(ad_float_left_type!="swf")
document.write("<a href='" + ad_float_left_url + "' target
= '_blank'><img src='" + ad_float_left_src + "' WIDTH=88
height=31 border=0></a>");
else
document.write("<EMBED src='" + ad_float_left_src + "'
quality=high  WIDTH=80 HEIGHT=80 TYPE='application/x-shockwave-
flash' id=changhongout ></EMBED>");

document.write("</td></tr><tr><td width=80 height=20
align=right><a href='javascript:close_float_left();void(0);'
class=closefloat><b><font color=#ff0000>关闭</font></b></a></td></tr>"
+"</table>"
+"</div>");

myload()}


把上面的代码另存为一个*.JS文件,然后在想实现此效果的页面用

  CODE:   
<script  src="*.js"></SCRIPT>
 
posted @ 2012-05-30 17:12 博客- 博客 阅读(4) 评论(0) 编辑
 

2012年5月25日

css圆角属性

看了为昨天一篇博文【asp.net,对于一个有点经验的猴子,我的要求高么?】做点解释

才发现也不会玩圆角,楼主的2个题目也搞不出来,于是查阅后总结一下,学习学习,不过这玩意是不是不支持ie8啊  反正在哥机器上  就没成功显示过

圆角效果,首先我们应该来创建一个DIV和简单的CSS吧。 css3 圆角

  1. <body>
  2. <div id="box"></div>
  3. </body>

在CSS中,我们应该给他定义一个宽度和高度,当然还有背景。

  1. #box {
  2.         width:590px;
  3.         height:100px;
  4.         background-color:#6B86A6;
  5.         }

好了,准备工作都已经就绪了,那么我们就开始做圆角吧,其实很简单。 css3 圆角

1.对4个角都设置。 css3 圆角

  1. #box { -moz-border-radius: 20px; }

     

圆角属性-不过很遗憾不兼容ie" border=0 alt="css3 圆角" src="http://www.zzarea.com/uploads/allimg/100906/1_100906082416_1.png" width=600 height=110 real_src="http://www.zzarea.com/uploads/allimg/100906/1_100906082416_1.png">
 

2.这种情况比较特殊,是对左上角和右下角设置同一种圆角,而右上角和左下角是同一种圆角。 css3 圆角

  1. #box { -moz-border-radius:20px 40px; }

圆角属性-不过很遗憾不兼容ie" alt="" src="http://www.zzarea.com/uploads/allimg/100906/0R60130A-2.png" real_src="http://www.zzarea.com/uploads/allimg/100906/0R60130A-2.png">

3.这种情况也比较特殊,是左上角为20px的圆角,右上和左下是40px的圆角,而右下则是5px的圆角。css3 圆角

  1. #box { -moz-border-radius:20px 40px 5px; }

圆角属性-不过很遗憾不兼容ie" alt="" src="http://www.zzarea.com/uploads/allimg/100906/0S255A15-2.png" real_src="http://www.zzarea.com/uploads/allimg/100906/0S255A15-2.png">

4.这种情况则比较规则,则是右上、右上、右下、左下依次是10px/20px/30px/40px的圆角。css3 圆角

  1. #box { -moz-border-radius:10px 20px 30px 40px; }

圆角属性-不过很遗憾不兼容ie" alt="" src="http://www.zzarea.com/uploads/allimg/100906/0R60130D-4.png" real_src="http://www.zzarea.com/uploads/allimg/100906/0R60130D-4.png">

5.分别控制4个位置的圆角。

-moz-border-radius-topleft for the top-left corner;
-moz-border-radius-topright for the top-right corner;
-moz-border-radius-bottomright for the bottom-right corner;
-moz-border-radius-bottomleft for the bottom-left corner;

  1. #box { -moz-border-radius-topright: 30px; }

圆角属性-不过很遗憾不兼容ie" alt="" src="http://www.zzarea.com/uploads/allimg/100906/0R60123K-5.png" real_src="http://www.zzarea.com/uploads/allimg/100906/0R60123K-5.png">

  1. #box { -moz-border-radius-topleft: 30px; }

圆角属性-不过很遗憾不兼容ie" alt="" src="http://www.zzarea.com/uploads/allimg/100906/0R6015161-6.png" real_src="http://www.zzarea.com/uploads/allimg/100906/0R6015161-6.png">

  1. #box { -moz-border-radius-topleft: 30px 15px; } 这种情况很特别,也就是会自动计算。一般不是会用到。

圆角属性-不过很遗憾不兼容ie" alt="" src="http://www.zzarea.com/uploads/allimg/100906/0R6015602-7.png" real_src="http://www.zzarea.com/uploads/allimg/100906/0R6015602-7.png">

6.分别控制上边的2个位置和下面的2个位置。

  1. #box { -moz-border-radius: 30px / 15px; }

圆角属性-不过很遗憾不兼容ie" alt="" src="http://www.333cn.com/media/zyjs/h001/h30/img200907221520298.png" real_src="http://www.333cn.com/media/zyjs/h001/h30/img200907221520298.png">

  1. #box { -moz-border-radius: 10px 20px 30px 40px / 5px 10px 15px 20px; }

圆角属性-不过很遗憾不兼容ie" alt="" src="http://www.zzarea.com/uploads/allimg/100906/0S25550C-4.png" real_src="http://www.zzarea.com/uploads/allimg/100906/0S25550C-4.png">

7.Safari和Chrome的hack。

  1. #box { -webkit-border-radius: 10px 20px 30px 40px; } 大家应该看的懂吧。有规律的那种

圆角属性-不过很遗憾不兼容ie" alt="" src="http://www.zzarea.com/uploads/allimg/100906/0R60130D-4.png" real_src="http://www.zzarea.com/uploads/allimg/100906/0R60130D-4.png">

  1. #box {
  2.    -webkit-border-top-left-radius: 10px;
  3.    -webkit-border-top-right-radius: 20px;
  4.    -webkit-border-bottom-right-radius: 30px;
  5.    -webkit-border-bottom-left-radius: 40px; } 控制各个位置

圆角属性-不过很遗憾不兼容ie" alt="" src="http://www.zzarea.com/uploads/allimg/100906/0R60130D-4.png" real_src="http://www.zzarea.com/uploads/allimg/100906/0R60130D-4.png">

  1. #box { -webkit-border-top-left-radius: 30px 15px; }

圆角属性-不过很遗憾不兼容ie" alt="" src="http://www.zzarea.com/uploads/allimg/100906/0R6015602-7.png" real_src="http://www.zzarea.com/uploads/allimg/100906/0R6015602-7.png">

  1. #box { -webkit-border-radius: 30px 15px; } 这种需要注意,没有了“/”

圆角属性-不过很遗憾不兼容ie" alt="" src="http://www.zzarea.com/uploads/allimg/100906/0S25550C-4.png" real_src="http://www.zzarea.com/uploads/allimg/100906/0S25550C-4.png">

好了,其实也真的很简单,比原来用图片来代替的过程不知道容易了多少。简单翻译结束。css3 圆角

 

圆角属性-不过很遗憾不兼容ie" border=0 alt="css3 圆角" src="http://www.zzarea.com/uploads/allimg/100906/1_100906082539_1.png" width=600 height=478 real_src="http://www.zzarea.com/uploads/allimg/100906/1_100906082539_1.png">

 

posted @ 2012-05-25 11:34 博客- 博客 阅读(6) 评论(0) 编辑
 

2012年4月28日

反射 .
摘要: 提纲:1、 什么是反射2、 命名空间与装配件的关系3、 运行期得到类型信息有什么用4、 如何使用反射获取类型5、 如何根据类型来动态创建对象6、 如何获取方法以及动态调用方法7、 动态创建委托1、什么是反射 Reflection,中文翻译为反射。 这是.Net中获取运行时类型信息的方式,.Net的应用程序由几个部分:‘程序集(Assembly)’、‘模块(Module)’、‘类型(class)’组成,而反射提供一种编程的方式,让程序员可以在程序运行期获得这几个组成部分的相关信息,例如: Assembly类可以获得正在运行的装配件信息,也可以动态的加载装配件,以及在装配件中查找类型信息,并创建该阅读全文
posted @ 2012-04-28 11:29 博客- 博客 阅读(2) 评论(0) 编辑
 

2012年4月10日

在 ASP.NET 2.0 中创建 Web 应用程序主题(三)

图像和主题

您可以在主题中包含图像。处理某些控件(例如Menu、TreeView或BulletedList控件)时,在主题中添加图像会很有用。

例如,列表10包含用于BulletedList控件的外观。该外观包含对OrangeTheme文件夹的BulletImages子文件夹中名为OrangeBullet的图像的引用。

列表10:BulletedList.Skin

<asp:BulletedListBulletStyle="CustomImage"BulletImageUrl="BulletImages/OrangeBullet.gif"Runat="Server"/>

列表11中的页面使用BulletedList外观来显示Titles数据库表中的书目的项目符号列表。

列表11:ShowBulletedList.aspx

<%@PageTheme="OrangeTheme"%><html><headrunat="server"><title>ShowBulletedList</title></head><body><formid="form1"runat="server"><asp:BulletedListID="BulletedTitles"DataSourceID="TitleSource"DataTextField="Title"Runat="Server"/><asp:SqlDataSourceID="TitleSource"ConnectionString="Server=localhost;Trusted_Connection=true;Database=Pubs"SelectCommand="SELECTTitleFROMTitles"Runat="Server"/></form></body></html>

打开列表11中的页面时,BulletedList控件将从Titles数据库表中检索标题列表,并显示该列表。请注意,BulletList外观将OrangeBullet图像应用到了BulletedList控件中(请参见图5)。


图5:应用包含图像的主题

 

返回页首

级联样式表和主题

您还可以在主题中使用级联样式表。如果您将级联样式表添加到主题文件夹中,那么当您将该主题应用于某个页面时,级联样式表将自动应用于该页面。如果Themes文件夹的内容被编译为某一类,则Themes文件夹中存在的任何级联样式表都将被添加到该类中。

例如,假设您要为页面中的所有超链接创建悬停效果。您可以使用列表12中的级联样式表,以便当鼠标悬停在超链接上时使超链接的颜色更改为橙色。

列表12:Hover.css

A:hover{color:orange;}

如果将列表12中的级联样式表添加到OrangeTheme文件夹中,那么当OrangeTheme应用于某个页面时,样式表将自动应用于该页面。使样式表自动应用于页面的一个要求是该页面必须包含服务器端<headrunat="Server"/>标记。此标记用于使链接呈现样式表中的样式。

由于列表13中的页面包含<headrunat="Server"/>标记,并且应用了OrangeTheme,因此该页面将自动链接到Hover.css样式表。

列表13:Menu.aspx

<%@PageTheme="OrangeTheme"%><html><headrunat="server"><title>Menu</title></head><body><formid="form1"runat="server"><ahref="Home.aspx">Home</a><br/><ahref="Products.aspx">Products</a><br/><ahref="Services.aspx">Services</a></form></body></html>

如果打开列表13中的页面并将鼠标悬停在某个超链接上,该超链接将变为橙色(请参见图6)。


图6:在主题中使用级联样式表

 

可以在一个主题中包含多个级联样式表。如果您添加了多个级联样式表,则服务器端<headrunat="Server"/>标记将自动生成每个样式表的链接。

返回页首

动态加载主题

假设您要动态更改网站的外观。您可能会希望用户在与您的Web应用程序进行交互时,可以自定义Web应用程序的颜色和总体外观。通过利用动态加载主题操作,您可以将此功能提供给ASP.NET2.0应用程序的用户。

通过修改Page对象的theme属性值,您可以在运行时修改页面使用的主题。您可以将任一有效主题的名称指派给此属性。您必须了解使用theme属性时的一个限制。即theme属性只能在PagePreInit事件发生过程中或发生之前设置。

在页面的PreInit方法的处理程序中,设置页面的Theme属性。

下面的代码示例演示如何根据查询字符串中传递的值按条件设置页面主题。

ProtectedvoidPage_PreInit(objectsender,EventArgse)
{
switch(Request.QueryString["theme"])
{
case"Blue":
Page.Theme="BlueTheme";
break;
case"Pink":
Page.Theme="PinkTheme";
break;
}
}

例如,假设您在Themes文件夹中创建了两个新的主题文件夹,名为RedTheme和YellowTheme。您可以将列表14中的外观添加到RedTheme文件夹中,将列表15中的外观添加到YellowTheme文件夹中(这些外观将把DropDownList控件的BackColor更改为红色或黄色)。

列表14:RedTheme/DropDownList.Skin

<asp:DropDownListBackColor="Red"Runat="Server"/>

列表15:YellowTheme/DropDownList.Skin

<asp:DropDownListBackColor="Yellow"Runat="Server"/>

列表16中的页面将根据用户在DropDownList控件中的选择动态加载RedTheme或YellowTheme主题(请参见图7)。请注意,“请求”集合用于在PreInit事件处理程序中检索用户的选择。由于PreInit事件在页面执行周期中引发过早,以至于无法使用dropThemeDropDownList控件的任何属性,因此您必须使用“请求”集合。


图7:动态加载主题

 

 

列表16:DynamicTheme.aspx(C#)

<%@PageLanguage="C#"%><scriptrunat="server">voidPage_PreInit(objectsender,EventArgse){Page.Theme=Request["dropTheme"];}</script><html><headrunat="server"><title>DynamicTheme</title></head><body><formid="form1"runat="server"><asp:DropDownListid="dropTheme"AutoPostBack="true"Runat="Server"><asp:ListItemText="YellowTheme"/><asp:ListItemText="RedTheme"/></asp:DropDownList></form></body></html>

以编程方式应用控件外观

在页面的PreInit方法的处理程序中,设置控件的SkinID属性。


下面的代码示例演示如何设置Calendar控件的SkinID属性。
voidPage_PreInit(objectsender,EventArgse)
{
Calendar1.SkinID="MySkin";
}

返回页首

结论

在本文中,我们学习了ASP.NET2.0主题的基础知识和高级应用。主题是一项强大的ASP.NETFramework新增功能。通过利用主题功能,可以显著减少您需要添加到各个ASP.NET页面的内容量。使用主题功能可以一次定义控件的外观,并可以将该外观应用于整个Web应用程序。因此,使用主题功能可以轻松创建具有一致的并可维护的外观设计的网站。

返回页首

参考资料

•

ASP.NETUnleashed

•

ASP.NETv.2.0-TheBetaVersion

•

ASP.NET2.0BetaPreview

•

IntroducingMicrosoftASP.NET2.0

作者简介

StephenWalther编写了有关ASP.NET的畅销书ASP.NETUnleashed。此外,他还是ASP.NETCommunityStarterKit(Microsoft开发的ASP.NET示例应用程序)的体系结构设计师和主要开发人员。他还通过自己的公司Superexpert(http://www.superexpert.com/)为美国的公司(包括NASA和Microsoft)提供ASP.NET培训。

 

posted @ 2012-04-10 10:59 博客- 博客 阅读(9) 评论(0) 编辑
 
在 ASP.NET 2.0 中创建 Web 应用程序主题(二)

列表2中的页面包含用于询问用户名的窗体。除了在页面顶部添加了主题指令之外,此页面没有任何特殊的地方。该主题指令用于将OrangeTheme主题应用于页面。

当您在Web浏览器中打开列表2中的页面时,TextBox和Button控件将使用在Skin文件中声明的格式设置来显示(请参见图1)。


图1:将简单主题应用于ASP.NET页面

 

Skin文件可以包含比列表1中所包含的格式设置更复杂的格式设置。例如,列表3中的GridView.Skin文件包含了用作GridView控件的格式设置的脚本和模板。(在ASP.NET2.0Framework中,GridView控件替换了DataGrid控件。)

列表3:GridView.Skin(C#)

<scriptlanguage="C#"runat="Server">stringDisplayInStock(objectinStock){if((Int16)inStock>0)return"InStock";elsereturn"OutofStock";}</script><asp:GridViewAutoGenerateColumns="false"ShowHeader="false"CellPadding="5"Font-Name="Arial"Runat="Server"><AlternatingRowStyleBackColor="LightBlue"/><Columns><asp:TemplateField><ItemTemplate><%#Eval("ProductName")%></ItemTemplate></asp:TemplateField><asp:BoundFieldDataField="UnitPrice"DataFormatString="{0:c}"/><asp:TemplateField><ItemTemplate><%#DisplayInStock(Eval("UnitsInStock"))%></ItemTemplate></asp:TemplateField></Columns></asp:GridView>

列表3:GridView.Skin(VisualBasic.NET)

<scriptlanguage="VB"runat="Server">FunctionDisplayInStock(inStockAsObject)AsStringIfCType(inStock,Int16)>0ThenReturn"InStock"ElseReturn"OutofStock"EndIfEndFunction</script><asp:GridViewAutoGenerateColumns="false"ShowHeader="false"CellPadding="5"Font-Name="Arial"Runat="Server"><AlternatingRowStyleBackColor="LightBlue"/><Columns><asp:TemplateField><ItemTemplate><%#Eval("ProductName")%></ItemTemplate></asp:TemplateField><asp:BoundFieldDataField="UnitPrice"DataFormatString="{0:c}"/><asp:TemplateField><ItemTemplate><%#DisplayInStock(Eval("UnitsInStock"))%></ItemTemplate></asp:TemplateField></Columns></asp:GridView>

列表3中的Skin文件包含一个GridView控件,该控件具有三列(请参见图2)。第一列是一个TemplateField列,用于显示ProductName字段的值。第二列是一个BoundField列,用于显示UnitPrice字段(请注意,此列使用DataFormatString属性将价格形式设置为货币)。最后,第三列是另一个TemplateField列。此列将从Skin文件所包含的脚本中调用DisplayUnitsInStock方法,以显示文本“InStock”或“OutofStock”。


图2:复杂的GridView外观

 

您可以将GridView.Skin外观用于列表4中的页面(假如您已将该外观添加到了OrangeTheme文件夹中)。

列表4:SkinnedGridView.aspx

<%@PageTheme="OrangeTheme"%><html><headrunat="server"><title>SkinnedGridView</title></head><body><formid="form1"runat="server"><asp:GridViewID="GridView1"DataSourceID="ProductSource"Runat="Server"/><asp:SqlDataSourceID="ProductSource"ConnectionString="Server=localhost;Trusted_Connection=true;Database=Northwind"SelectCommand="SelectProductName,UnitPrice,UnitsInStockFROMProducts"Runat="Server"/></form></body></html>

列表4中的页面显示了Products数据库表中的内容。该页面包含一个绑定到SqlDataSource控件的GridView控件。SqlDataSource控件用于连接到Northwind数据库表,以检索该数据库中的数据。

返回页首

默认外观与命名外观

在上一部分中,您学习了如何创建应用于某一类控件的所有实例的外观。例如,您学习了如何创建应用于所有TextBox控件或GridView控件的外观。但是,您很快就会发现,您需要为同一控件创建多个外观。例如,您会希望能够将不同外观应用于不同页面(甚至同一页面)中的GridView控件。

如果您创建的是“命名外观”,那么就可以创建应用于同一类控件的多个外观。命名外观就是包含SkinID的外观。例如,列表5中的Skin文件包含了三个可以应用于TextBox控件的外观。

列表5:TextBox.Skin

<asp:TextBoxBackColor="Green"Runat="Server"/><asp:TextBoxSkinID="BlueTextBox"BackColor="Blue"Runat="Server"/><asp:TextBoxSkinID="RedTextBox"BackColor="Red"Runat="Server"/>

在列表5中,第一个TextBox外观称为默认外观。由于该外观不包含SkinID,因此,默认情况下,该外观应用于所有TextBox控件。而第二个和第三个TextBox外观包含各自的SkinID属性值。只有在通过其SkinID值明确引用这两个外观时,它们才应用于TextBox控件。

例如,列表6中的页面使用了TextBox.SkinSkin文件中的全部三个外观。

列表6:SkinnedTextBoxes.aspx

<%@PageTheme="OrangeTheme"%><html><headrunat="server"><title>SkinnedTextBoxes</title></head><body><formid="form1"runat="server"><asp:TextBoxid="TextBox1"Runat="Server"/><br/><asp:TextBoxid="TextBox2"SkinID="BlueTextBox"Runat="Server"/><br/><asp:TextBoxid="TextBox3"SkinID="RedTextBox"Runat="Server"/></form></body></html>

由于列表6中的第一个TextBox控件不包含SkinID属性,因此其外观为默认外观。第二个TextBox控件的外观为BlueTextBox外观,最后一个TextBox控件的外观为RedTextBox外观(请参见图3)。

 


图3:应用默认外观和命名外观

 

返回页首

将主题应用于整个应用程序

 

到目前为止,我们已经通过使用“页面”指令的主题属性将多个主题应用于了各个页面。如果需要,您可以在Web配置文件中将某个主题应用于整个应用程序。

例如,列表7中的Web配置文件将OrangeTheme主题应用于了应用程序中的每个页面。

列表7:Web.Config

<configuration><system.web><pagestheme="OrangeTheme"/></system.web></configuration>

列表7中的Web.Config文件将把OrangeTheme主题应用于尚未在“页面”指令中指定主题的所有页面。换句话说,“页面”指令能够替代Web.Config文件中所指定的任何主题。

同一应用程序可以包含用于指定主题的多个Web.Config文件。您可以将不同的Web配置文件添加到不同的子文件夹中,每个Web配置文件都可以指定不同的主题。

返回页首

主题与StyleSheetTheme

将主题应用于页面时,主题中所设置的任何控件属性都优先于页面中所设置的任何属性。例如,如果主题指定所有TextBox控件的背景都应当显示为橙色,那么即使个别TextBox控件的BackColor属性具有不同的值,页面中所有TextBox控件的背景也仍然都将显示为橙色。

但是,在某些情况下,您会希望替代页面中的特定外观设置。例如,当页面中存在多个TextBox控件时,您可能会希望将某个TextBox控件的BackColor更改为红色,以便突出显示该控件。在这种情况下,您就需要利用StyleSheetTheme。StyleSheetTheme的工作方式与普通主题非常相似,只不过它可以被个别控件的属性所替代。

与普通主题相比,StyleSheetTheme的工作方式与级联样式表更为相似。您可以将级联样式表规则替代为指定给个别HTML标记的样式规则,使用相同的方式也可以将StyleSheetTheme属性设置替代为个别控件的属性设置。

例如,列表8中的Skin文件包含一个TextBox外观,该外观将每个TextBox控件的BackColor设置为了橙色,将ForeColor设置为了绿色。

列表8:TextBox.Skin

<asp:TextBoxBackColor="Orange"ForeColor="Green"Runat="Server"/>

假设将列表8中的外观添加到了OrangeTheme主题中。列表9中的页面将使用StyleSheetTheme属性而不是theme属性来应用该外观。

列表9:StyleSheetThemedTextBox.aspx

<%@PageStyleSheetTheme="OrangeTheme"%><html><headrunat="server"><title>StyleSheetThemedTextBox</title></head><body><formid="form1"runat="server"><b>FirstName:</b><asp:TextBoxID="txtFirstName"Runat="Server"/><br/><br/><b>LastName:</b><asp:TextBoxID="txtLastName"BackColor="Yellow"Runat="Server"/><br/><br/><asp:ButtonText="Submit"Runat="Server"/></form></body></html>

当您打开列表9中的页面时,第一个TextBox控件的BackColor将显示为橙色,而第二个TextBox控件的BackColor将显示为黄色(请参见图4)。第一个TextBox控件的BackColor是由显示在“页面”指令中的StyleSheetTheme属性设置的。第二个TextBox控件的BackColor属性值是由页面本身设置的。


图4:使用StyleSheetTheme
posted @ 2012-04-10 10:58 博客- 博客 阅读(7) 评论(0) 编辑
 
在 ASP.NET 2.0 中创建 Web 应用程序主题(一)

在ASP.net2.0中创建Web应用程序主题

来源:MSDN

适用范围:
MicrosoftASP.NET2.0
MicrosoftVisualStudio2005

摘要:StephenWalther将论述主题(ASP.NET2.0的一项新增功能)的细节,其中包括如何在主题中同时使用级联样式表和图像,以及如何在运行时动态加载主题。(本文包含一些指向英文站点的链接。)

本页内容
引言创建和应用简单主题默认外观与命名外观将主题应用于整个应用程序主题与StyleSheetTheme图像和主题级联样式表和主题动态加载主题结论参考资料

引言

主题是MicrosoftASP.NET2.0的一项新增功能,使用此功能可以一次定义一组控件的外观,并可以将该外观应用于整个Web应用程序。例如,通过利用主题功能,您可以在一个中心位置为应用程序中的所有TextBox控件定义共同的外观,如背景颜色和前景颜色。使用主题功能可以轻松建立并维护整个网站外观的一致性。

主题与级联样式表并不相同。使用级联样式表可以控制浏览器上的HTML标记的外观。而主题则应用在服务器上,并适用于ASP.NET控件的属性。例如,您可以使用主题来指定GridView控件是否显示页眉或页脚,但不能使用级联样式表来执行此操作。

主题与母版页也并不相同。母版页也是ASP.NET2.0的一项新增功能,使用此功能可以为Web应用程序中的多个内容页指定共同的布局。使用主题可以控制页面中各个控件的外观,而母版页则不能。(在设计Web应用程序时,您可以并且可能将同时使用母版页和主题。)

在本文中,您要学习如何在ASP.NET2.0应用程序中利用主题功能。您会学习到如何在主题中同时使用级联样式表和图像。此外,我们还将学习如何在运行时动态加载主题。

返回页首

创建和应用简单主题

ASP.NET2.0不附带任何默认主题。当ASP.NET2.0发布之后,您可以从网站(例如www.ASP.net)上下载并使用主题。但是,现在,您必须从头开始创建自己要使用的所有主题。

此外,系统会警告您MicrosoftVisualWebDeveloper不提供任何用于创建主题的工具支持。尽管您确实可以使用VisualWebDeveloper来创建主题并将主题应用于网页;但在Web浏览器中实际打开页面前,您看不到将主题应用于页面的效果。换句话说,VisualWebDeveloper不提供任何用于创建主题的设计器支持。

了解这些警告后,我们继续创建简单主题。创建主题所需的第一步是在应用程序的根目录中创建一个名为Themes的新文件夹。(当ASP.NET2.0的BETA2版本发布后,您就需要将此文件夹命名为Application_Themes了。)当您尝试应用主题时,ASP.NETFramework将自动查找此文件夹。

 

 

创建了Themes文件夹之后,您可以通过向该Themes文件夹中添加子文件夹来创建一个或多个主题。我们将创建的第一个主题名为OrangeTheme。因此,我们需要在Themes文件夹中添加一个名为OrangeTheme的新文件。

然后,我们需要将Skin文件添加到OrangeTheme文件夹中。Skin文件是实际包含主题所应用的格式设置的文件。换句话说,该文件包含主题所应用的一个或多个控件外观。您可以将Skin文件命名为任何名称,只要以扩展名.Skin结尾即可。

一个主题可以包含一个Skin文件,也可以包含数百个Skin文件。您可以根据需要将Skin文件命名为任何名称。这没有关系,因为在将主题应用于页面时,ASP.NETFramework将把所有Skin文件合并在一起,而将这些文件视为单个Skin文件。

通过使用Theme或@Page指令的StyleSheetTheme属性,或者通过在应用程序配置文件中设置pages元素(ASP.NET设置架构)元素,都可以应用主题。VisualWebDeveloper只以可视方式显示使用StyleSheetTheme属性应用的主题。

创建页主题

在解决方案资源管理器中,右击要为其创建页主题的网站名称,然后单击“添加ASP.NET文件夹”。

单击“主题”。

如果App_Themes文件夹不存在,VisualWebDeveloper则会创建该文件夹。VisualWebDeveloper即为主题创建一个新文件夹,作为App_Themes文件夹的子文件夹。

键入新文件夹的名称。

此文件夹的名称也是页主题的名称。例如,如果您创建一个名为\App_Themes\FirstTheme的文件夹,则主题的名称为FirstTheme。

将构成主题的控件外观、样式表和图像的文件添加到新文件夹中。

 

我们将在主题OrangeTheme中使用列表1中的Skin文件(名为FormControls.Skin):

列表1:FormControls.Skin

<asp:TextBoxBackColor="Orange"ForeColor="DarkGreen"Runat="Server"/><asp:ButtonBackColor="Orange"ForeColor="DarkGreen"Font-Bold="True"Runat="Server"/>


您应当注意到了,列表1中的Skin文件包含TextBox和Button控件的声明。分别为这两个控件的BackColor和ForeColor属性提供了值。此外,还声明Button控件使用加粗字体。

请注意,您可以通过声明一个控件实例并设置一个或多个控件属性,从而使用Skin文件指定控件的外观。您可以在Skin文件中设置的控件属性是有限的。通常,仅可以设置外观属性。例如,您可以设置TextBox控件的BackColor、ForeColor甚至Text属性。但是不能在Skin文件中设置TextBox控件的AutoPostBack属性。

此外,您不能将外观用于每个ASP.NET控件。例如,您不能将外观用于Repeater控件、Literal控件或LoginView控件,也不能将外观用于User控件(但是,可以将外观应用于User控件中所包含的控件)。

将FormControls外观应用于页面之后,页面中的每个TextBox和Button控件都将使用在Skin文件中指定的属性值来显示。即便已经为该页面中的TextBox控件的BackColor属性指定了值,也是如此。Skin文件将替代页面中的控件属性。

列表2中的页面应用了主题OrangeTheme:

列表2:OrangePage.aspx

<%@PageTheme="OrangeTheme"%><html><headrunat="server"><title>OrangePage</title></head><body><formid="form1"runat="server">Enteryourname:<br/>

<asp:TextBoxID="txtName"Runat="Server"/><br/><br/><asp:ButtonID="btnSubmit"Text="SubmitName"Runat="Server"/></form></body>

</html>

posted @ 2012-04-10 10:55 博客- 博客 阅读(7) 评论(0) 编辑
 

2012年3月20日

零基础/ASP.NET(一)
摘要: 1.//弹出对话框.点击转向指定页面Response.Write("<script>window.alert('该会员没有提交申请,请重新提交!')</script>");Response.Write("<script>window.location ='http://www.cgy.cn/bizpulic/upmeb.aspx'</script>");2.//弹出对话框Response.Write("<script language='javascr阅读全文
posted @ 2012-03-20 11:37 博客- 博客 阅读(7) 评论(0) 编辑
 

2012年3月16日

session 常见问题
摘要: 问:为什么Session在有些机器上偶尔会丢失?答:可能和机器的环境有关系,比如:防火墙或者杀毒软件等,尝试关闭防火墙。问:为什么当调用Session.Abandon时并没有激发Session_End方法?答:首先Session_End方法只支持InProc(进程内的)类型的Session。其次要激发Session_End方法,必须存在Session(即系统中已经使用Session了),并且至少要完成一次请求(在这次请求中会调用该方法)。问:为什么当我在InProc模式下使用Session会经常丢失?答:该问题通常是由于应用程序被回收导致的,因为当使用进程内Session时,Session是保阅读全文
posted @ 2012-03-16 10:07 博客- 博客 阅读(10) 评论(0) 编辑
 
仅列出标题  下一页