如题
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 阅读(166) |
评论 (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.dll、
SchemaExplorer.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) |
编辑