如题
posted @ 2008-06-20 17:07 singleblue 阅读(121) | 评论 (0)编辑

ReportDocument rptDocument;
rptDocument.SetDataSource(myDS);
CrystalDecisions.Shared.ReportPageRequestContext rprc 
    = new CrystalDecisions.Shared.ReportPageRequestContext();
int totalPCount = rptDocument.FormatEngine.GetLastPageNumber(rprc);

posted @ 2008-06-20 16:39 singleblue 阅读(127) | 评论 (0)编辑

<!--
//学习一下如何利用js来操作cookie

//写入 cookie
//不区分 cookieName 的大小写
//不考虑子键
function WriteCookies(cookieName, cookieValue, expires)
{
    if (expires)
    {
        //指定了 expires
        document.cookie = 
            WriteCookies_GetCookieName(cookieName) + "=" + escape(cookieValue) 
            + "; expires=" + xpires.toGMTString();
    }
    else
    {
        document.cookie = WriteCookies_GetCookieName(cookieName) + "=" + escape(cookieValue);
    }
}

//获取并返回与 cookieName 同名的 cookie 名称,允许大小写不同
//如果不存在这样的 cookie,就返回 cookieName
function WriteCookies_GetCookieName(cookieName)
{
    var lowerCookieName = cookieName.toLowerCase();
    var cookieStr = document.cookie;
   
    if (cookieStr == "")
    {
        return cookieName;
    }
   
    var cookieArr = cookieStr.split("; ");
    var pos = -1;
    for (var i=0; i<cookieArr.length; i++)
    {
        pos = cookieArr[i].indexOf("=");
        if (pos > 0)
        {
            if (cookieArr[i].substring(0, pos).toLowerCase() == lowerCookieName)
            {
                return cookieArr[i].substring(0, pos);
            }
        }
    }
   
    return cookieName;
}

//获取并返回 cookie 值
//不区分 cookieName 的大小写
//dfltValue 为默认返回值
//不考虑子键
function ReadCookies(cookieName, dfltValue)
{
    var lowerCookieName = cookieName.toLowerCase();
    var cookieStr = document.cookie;
   
    if (cookieStr == "")
    {
        return dfltValue;
    }
   
    var cookieArr = cookieStr.split("; ");
    var pos = -1;
    for (var i=0; i<cookieArr.length; i++)
    {
        pos = cookieArr[i].indexOf("=");
        if (pos > 0)
        {
            if (cookieArr[i].substring(0, pos).toLowerCase() == lowerCookieName)
            {
                return unescape(cookieArr[i].substring(pos+1, cookieArr[i].length));
            }
        }
    }
   
    return dfltValue;
}


//test all the oper

document.write("写入名称为 cv 的 cookie...<br>");
WriteCookies("test", "test123", null);

document.write("写入名称为 Ab,带失效日期的 cookie...<br>");
var expires = new Date("December 11, 2010");
WriteCookies("singleblue", "test234", expires);

document.write("读取名称为 singleblue 的 cookie..." + ReadCookies("ab", ""));
-->

posted @ 2008-06-11 10:25 singleblue 阅读(166) | 评论 (2)编辑
今天coding时,发现系统有一个地方是需要做全角自动转半角的,就从网上搜到了下面的东西
检查全角半角
var s = "bABD1232232";
var strCode;
for(var i=0;i<s.length;i++)
{
    strCode = s.charCodeAt(i);
    if((strCode>65248)||(strCode==12288))  //12288是空格
    {
        alert("有全角!");
        break;
    }
}
半角字符由一个字节保存,全角字符用两个字节保存,所以码值的绝对值小于256的就是半角,否则就是全角。
全角转半角的函数
function DBC2SBC(str)
{

var result = '';
for(var i=0;i<str.length;i++){
code = str.charCodeAt(i);                         //获取当前字符的unicode编码
if (code >= 65281 && code <= 65373)     //在这个unicode编码范围中的是所有的英文字母已及各种字符
{
    result += String.fromCharCode(str.charCodeAt(i) - 65248);
    //把全角字符的unicode编码转换为对应半角字符的unicode码
}else if (code == 12288)//空格
{
    result += String.fromCharCode(str.charCodeAt(i) - 12288 + 32);
}else
{
    result += str.charAt(i);
}
}
return result;
}
javascript是16位编码
65281到65373只有这里面的数据才是全角,这里要有范围限制的
关于65281的算法是这么来的
比如全角的字符A
编码为FF21
转成16进制是
1111 1111 0010 0001
对两个字节分别取10进制的值
第一个字节是
65280
第二个字节是
33
所以a的65313

对这个编码减去
65248得半角的

65248比65280小32
所以我想ASC码小于32的就不能转换
因为转换了字符编码的前一字节就不能是1111 1111即FF
就会比这个小,那应该就不是全角了
就是说第一字节不能满足全为1

posted @ 2008-06-06 15:44 singleblue 阅读(273) | 评论 (1)编辑

如题,也可以用现今较为流行的js框架来实现,会较为简单,现今的js框架大多数都有封装好支持多种浏览器的创建方式
var xmlHttp = false;
/*@cc_on
@*/
/*@if(@_jscript_version>=5)
try
{
    xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
    try
    {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch(e2)
    {
        xmlHttp= false;
    }
}
@end @*/
if(!xmlHttp && typeof XMLHttpRequest != 'undefined')
    xmlHttp = new XMLHttpRequest();

posted @ 2008-06-05 15:55 singleblue 阅读(221) | 评论 (1)编辑

1.项目到项目的引用
 在解决方案包含多个项目,一个项目需要引用同一个解决方案中的另一个项目时使用。在解决方案上进行构建时,这类引用会自动更新。项目包含在解决方案时,建议使用这类引用。Visual Studio在解决方案文件中添加ProjectReferences标记项目,来跟踪这类引用。也就是说,如果另一个解决方案中也使用了这个项目,而它有项目到项目的引用,就必须重新建立它们。
2.Bin
 这表示引用的是应用程序的bin目录外部的一个共享组件,该组件没有在全局程序集缓存(Global Assembly Cache,GAC)中注册。在引用时,这些项会复制到bin目录下,在默认情况下仅在构建过程中更新。如果查看一下该文件夹,除了程序集之外,还创建了一个<assemblyname>.dll.refresh文件。在该文件中包含了位置的引用,生成一个新副本。如果删除了这个文件,在构建过程中就不生成新副本。
3.GAC
   用全局程序集缓存(GAC)注册的项不复制到项目的bin文件夹下。在web.config文件的编译部分,会添加一个新项,以跟踪对GAC组件的引用。这不是一个副本文件,所以会自动更新,选择安装到GAC中的当前版本
4.Web引用
 这类引用用于跟踪Web服务的注册。在添加一个新的web引用时,会创建一个新的app_WebReferences文件夹,其中包含所生成的客户代理文件。只有在Visual Studio Solution Explorer的app_WebReferences文件夹选择Update Web References,才会更新这些引用。

   以上是从书上看到的一些东东,感觉了解一下也好

posted @ 2008-06-04 10:59 singleblue 阅读(125) | 评论 (0)编辑
使用AjaxPro时遇到一个问题:
利用AjaxPro调用后台代码,出现错误,由于后台代码与Session有交互

错误信息为:
"只有在配置文件或Page指令中将enableSessionState设置为true时,才能使用会话状态.还请确保在应用程序配置的<configuration>\<system.web>\<httpModules>节中包括System.Web.SessionStateMod或自定义会话状态模块"
 
解决方法如下,在Web.config中允许Session,并在ajaxpro方法前加
  [AjaxMethod(HttpSessionStateRequirement.ReadWrite)]   //  读写Session:  
或  
  [AjaxMethod(HttpSessionStateRequirement.Read)]   //  只读Session:
posted @ 2008-05-29 15:16 singleblue 阅读(34) | 评论 (0)编辑
调用window.print()时,可以利用css来控制页面中的东西是否显示
<style>
@media print{
  .noprint{
     display:none
  }
}
</style>


HTML如下:
<table width="757" height="174" border="0" align="center"cellpadding="0"
cellspacing="0">
 <tr class="noprint">
  <td height="133" align="center" valign="top">
   <img src="Images/top.jpg" width="757" height="133"></td>
 </tr>
</table>
此时<tr class="noprint">是不打印的tr


下面是media的相关
media类型是CSS属性媒体类型,用于直接引入媒体的属性。其语法格式如下:
@media screen | print | projection | braille | aural | tv | handheld | all
参数说明
    screen:指计算机屏幕。
    print:指用于打印机的不透明介质。
    projection:指用于显示的项目。
    braille:盲文系统,指有触觉效果的印刷品。
    aural:指语音电子合成器。
    tv:电视类型的媒体。
    handheld:指手持式显示设备。
    all:用于所有媒体。
posted @ 2008-05-21 10:15 singleblue 阅读(165) | 评论 (0)编辑

急需datastage,如果园里的朋友谁有这个软件的话,麻烦分享一下
十分感谢!

posted @ 2008-05-16 08:45 singleblue 阅读(19) | 评论 (0)编辑
<asp:Label ID="lblFare" runat="server" Text="" ForeColor ="red" Font-Bold ="true" style='display:none;'></asp:Label>

<asp:Label ID="lblFare" runat="server" Text="" ForeColor ="red" Font-Bold ="true" Visible="false"></asp:Label>
引起的问题

写一个js函数来取lblFare的值,如下
var lblOld=document.getElementById('lblFare');
alert(lblOld.innerHTML);
这时,如果后者的写法,则取不到任何值,因为这个时候Visible为false的话,控件没有Render出来
posted @ 2008-05-12 14:26 singleblue 阅读(153) | 评论 (1)编辑
function playflash(filename)
{
document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"  codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="930px" height="300px">');
          document.write('<param name ="wmode" value="transparent" />');
          document.write('<param name="movie" value="'+filename+'">');
          document.write('<param name="quality" value="high">');
          document.write('<embed src="images/flash.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="670" height="285"></embed>');
        document.write('</object>');
}
posted @ 2008-05-09 15:34 singleblue 阅读(96) | 评论 (0)编辑
  今天在用codesmith 3.2来根据Oracle中的表和模板生成实体类时,在选择data source时,发现Provider Type中没有Oracle的选项(OracleNativeSchemaProvider),在网上搜了一下,才知道原来是要导入两个文件(SchemaExplorer.OracleNativeSchemaProvider.dllSchemaExplorer.OracleNativeSchemaProvider.dll.config)到codesmith安装目录下的\SchemaProviders文件夹。把这个文件传上来,以方便以后会遇到相同问题的朋友们。

/Files/singleblue/SchemaProviders.rar
posted @ 2008-04-29 15:47 singleblue 阅读(97) | 评论 (1)编辑
在asp.net调试javascript代码主要有以下方法:
一、在要调试的javascript代码前加入debugger,相当于下断点
  注意,这种方式需要在IE的Internet选项中,禁用脚本调试(Internet Explorer)和禁用脚本调试(其他)两个选项禁用,即不打勾。
     
  这样,调试网站时,就可以进入debugger处的语句
二、在VS2005中按F5调试网站时,调试菜单下有个窗口,窗口下有个脚本资源管理器,打开它,会在脚本资源管理器的视  图中看到正在运行的页面,双击选择你要调试的js代码所在的页面,即可打开正在运行的页面,该页面此时可以下断点进行,但有个缺点就是,这种方式的调试是在页面load之后,故如果你要调试的代码是放在load方法之中,这种方法是没办法调试的。
  
  这种方式也可以直接在IIS中打开页面,并在IE中启动脚本调试
  
三、把js代码放在一个js文件中,此时,在VS2005中是可以对js文件中的代码下断点的,包括load事件的代码可以在这里设置调试
posted @ 2008-04-24 14:54 singleblue 阅读(273) | 评论 (5)编辑

下面代码可以在你利用js调用时,某一个aspx页面的输出,把这个输出传回指定的div或其他什么的,就可以实现加载自定义控件的效果 
name 用来指定你的控件名称,至于控件要显示的内容就与这边的代码无关。
     Response.Clear();
        StringBuilder sb = new StringBuilder();
        System.IO.StringWriter sw = new System.IO.StringWriter(sb);
        HtmlTextWriter writer = new HtmlTextWriter(sw);
        Control d = LoadControl(name + ".ascx");
        d.RenderControl(writer);
        Response.Write(sb.ToString());
        Response.End();

posted @ 2007-12-29 09:19 singleblue 阅读(209) | 评论 (0)编辑

  这几天比较清闲一点,在网上逛时,看到有人在用这个轻量级的JS库,据说挺不错,自己就
开始学习一下。顺便写了这个简单的留言本,在这里提供给想学习JQuery的人作个参考。
功能很简单,具体也没有进行细节性的处理,如SQL防注入等都没有实现,只实现了发表留言、回复留言功能。


/Files/singleblue/JQueryNoteDemo.rar

posted @ 2007-12-28 13:16 singleblue 阅读(288) | 评论 (1)编辑