今天在项目中一个页面使用 System.Web.UI.ScriptManager.RegisterStartupScript(this, GetType(), "js", "alert('OK');", true);的时候发现没用,检查发现脚本没用注册到页面, check页面发现了问题,<form method="post"> 没用ruanat,更详细的信息请参看MSDN关于这个方法参数的介绍
View DetailsVS2010安装项目的系统必备中没有.NET 2.0,不过我们可以从VS2008的程序文件中找到 .NET 2.0 的系统必备安装包。 安装了VS2008 的 C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages 下的 DotNetFX 文件夹,就是 .NET 2.0 的系统必备安装包。把 DotNetFX 文件夹复制到安装了 VS2010 的 C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages下,然后在VS2010中就可以选择 .NET 2.0 的系统必备了。 原文:http://www.cnblogs.com/anjou/archive/2011/05/08/2040675.html
View DetailsPage.ClientScript.RegisterStartupScript 与 Page.ClientScript.RegisterClientScriptBlock 被用来注册脚本块。第一个是 RegisterStartupScript 方法。当您有一个想要在页面加载时启动的 JavaScript 函数时,最好使用该类。就此列举一例,在 Visual Studio 2005 中创建一个包含两个按钮的 ASP.NET 页面。Button1 和 Button2 分别为这两个按钮的 ID。然后,在 Page_Load 事件内部嵌入以下代码 C#:
1 |
Page.ClientScript.RegisterStartupScript(this.GetType(), "MyScript", "function AlertHello() { alert('你好,ASP.NET'); }", true); |
1 |
Button1.Attributes["onclick"] = "AlertHello()";Button2.Attributes["onclick"] = "AlertHello()"; |
RegisterStartupScript 方法的两个可能结构如下: • RegisterStartupScript (type, key, script) • RegisterStartupScript (type, key, script, script tag specification) 在上例中,您指定了类型 Me.GetType()、关键字及包含的脚本,然后是一个值为 True 的布尔值(以便 .NET 自动使用 <script> 标记将脚本嵌入 ASP.NET 页面中)。Page.ClientScript.RegisterStartupScript 与 Page.ClientScript.RegisterClientScriptBlock 之间的区别 主要区别在于:RegisterStartupScript 方法是将 JavaScript 嵌入到 ASP.NET 页面的底部,恰好位于关闭元素 </form> 的前面。RegisterClientScriptBlock方法是将 JavaScript 嵌入到页面中开启元素 <form> 的紧后面。那么,这有何不同呢?正如我们将要看到的,这有很大的不同。 就此列举一例,以下是在页面加载到浏览器时,将焦点置于该页面上的一个文本框中的方法 – 使用利用了 RegisterStartupScript 方法:
1 |
Page.ClientScript.RegisterStartupScript(this.GetType(), "Testing", "document.forms[0]['<strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">txtText</strong>'].focus();", True) |
由于在浏览器运行到页面底部并执行此小段 JavaScript 时,就已生成了页面上的文本框,并已将其放到了页面中,因此,此方法运行正常。但是,如果不按照上述方法,而编写如下代码(使用 RegisterClientScriptBlock 方法):
1 |
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "Testing", "document.forms[0]['<strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">txtText'</strong>].focus();", True) |
文本框控件将不会获得焦点,且会在页面上生成一个 JavaScript 错误(如图 1 所示)。 图 1. 执行 JavaScript 时出错 出错的原因在于,浏览器将先遇到 JavaScript,而后文本框才会出现在页面中。因此,JavaScript 将无法找到 txtText。 原文出处:http://blog.csdn.net/jiahello/archive/2009/06/29/4305855.aspx
View Detailsconst 的概念就是一个包含不能修改的值的变量。
1 |
常数表达式是在编译时可被完全计算的表达式。因此不能从一个变量中提取的值来初始化常量。如果 const int a = b+1;b是一个变量,显然不能再编译时就计算出结果,所以常量是不可以用变量来初始化的。 readonly 允许把一个字段设置成常量,但可以执行一些运算,可以确定它的初始值。因为 readonly 是在计算时执行的,当然它可以用某些变量初始化。readonly 是实例成员,所以不同的实例可以有不同的常量值,这使readonly更灵活。readonly 关键字与 const 关键字不同。1. const 字段只能在该字段的声明中初始化。 readonly 字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数,readonly 字段可能具有不同的值。2. const 字段是编译时常数,而 readonly 字段可用于运行时常数。3. const 默认就是静态的,而 readonly 如果设置成静态的就必须显示声明。4.const 对于引用类型的常数,可能的值只能是 string 和 null。 readonly可以是任何类型总结const只能在初期就使用常量初始化好。对于每一次编译后的结果,const的值是固定的,而readonly的值是可以在运行的时候才确定值的~~FROM URL:<a href="http://zhidao.baidu.com/question/286719961.html">http://zhidao.baidu.com/question/286719961.html</a> |
PHP5.2.17 官方下载: http://windows.php.net/downloads/releases/php-5.4.3-Win32-VC9-x86.zip 首先安装好IIS7 安装的时候 要注意三个地方打得勾 注: CGI 会在IIS7+PHP_5.3.5的环境中用到 ISAPI扩展和ISAPI筛选器 用在IIS7+PHP_5.2.17 下面开始添加IIS的PHP支持 IIS7+PHP_5.3.5 1. 将下载回来的php_5.3.5解压到 C:\php目录(也可以放在其他地方,但是后面应该做相应修改) 2. 将php.ini-development改名为php.ini 3. 修改php.ini 查找date.timezone 修改为date.timezone = “Asia/Shanghai”(这里必须改,不然会出警告) 找到Windows Extensions开启 所需模块,如:php_curl.dll php_mysql.dll php_mysqli.dll php_xmlrpc.dll 只要去掉前面的 分号 保存就可以了 4. 添加<模块映射> 这里的路径按你的实际情况填写. 5. 在网站根目录新建一个phpinfo.php的文本文件 内容为: <?php phpinfo();?> 6. 测试,打开浏览器看结果:localhost/phpinfo.php,如果能看到类似下面的页面就说明你成功了: 好了,到现在 已经可以成功的运行PHP程序了. IIS7+PHP_5.2.17 于之前安装IIS的时候已经选上了isapi扩展和isapi筛选,这里就不用另外再添加角色服务了,直接开始 先修改php.ini文件.. 把c:\php下的php.ini-dist (需先设置显示扩展名)改名成php.ini,用记事本打开 找到extension_dir = “./”,然后把里面的./改成c:\php(根据自己的实际情况修改路径) 1. 添加应用程序池 2. 添加isapi和cgi限制 3. 添加isapi筛选器 4. 添加脚本映射 5. 测试(之前已经创建了phpinfo.php) 跟之前一样 打开localhost/phpinfo.php 查看效果:
View DetailsHome键(小房子键) 在键盘上映射的就是home键,这倒是很好记。 Menu键 用于打开菜单的按键,在键盘上映射的是F2键,PgUp键同样可以。另外,看英文原文的意思,貌似这个键在某些机型上会被设计为左软件(left softkey) Start键 这个键在模拟器和G1真机上我都没有找到到底是哪个键。映射的是Shift+F2或PgDn,某些机型会被设计为右软键(right softkey)。 Back键 返回键,用户返回上一个UI或者退出当前程序。键盘上映射ESC键。 Call/Dial键(电话键) 接听来电或启动拨号面板,这是一部手机最基本的功能键。PC键盘映射为F3键。 Hangup/Light Off键(挂机键) 挂断电话或关闭背灯用。键盘映射F4键。 Search键 在提供了Search功能的应用里快速打开Search对话框,比如在Browser里可以快速打开地址搜索栏。键盘映射F5。 Power Down键(关闭电源) 对应模拟器左上边缘的电源按钮,不过似乎在模拟器上按这个键并没什么用处。键盘映射F7。 Volume Up (增大音量) 键盘映射Ctrl+5,也可以使用小数字键盘的”+”键。 Volume Down(减小音量) 键盘映射Ctrl+6,也可以使用小数字键盘的”-”键。 Camera 键 键盘映射Ctrl+F3。不过也许是我设置有问题,在模拟上用这个快捷键似乎没任何反应。 Switch Screen Orientation (旋屏) 旋转模拟器屏幕方向,键盘映射Ctrl+F11。这是非常有用和常用的快捷键,几乎所有应用都会受到屏幕方向带来的Layout变化困扰,在开发程序时候,一定要测试屏幕方向的兼容性。 Cell Networking On/Off (手机网络开关) 这里说的手机网络指的是GPRS/3G这种数据网络,并不影响GSM网络。对于编写基于网络应用的同学,这个快捷键非常有用,可以测试网络异常中断的情况。键盘映射F8 Code Profiling 不知此为何物-.-,快捷键F9。英文原文:F9 (only with -trace startup option) Fullscreen Mode (全屏模式) 一个没什么用的鸡肋功能。也许对于测试画面比较精细的游戏能有点帮助。快捷键是大家喜闻乐见的Alt+Enter。 Trackball mode (轨迹球模式) 这是一个非常有用的功能,按F6之后,可以打开轨迹球模式,模拟器左上角会显示一个小轨迹球。通过鼠标移动,可以模拟轨迹球的转动。对于测试利用轨迹球操作的应用会非常方便。 Trackball mode Temporaily (临时轨迹球模式) 这个功能很有意思,如果你有比较短暂的使用轨迹球的操作,那么可以按住Delete键滑动鼠标。释放Delete键会自动结束轨迹球模式。 四方向键和中心键 对应键盘四方向键和Enter键,当然也可以用数字小键盘,KEYPAD_5对应中心键。
View DetailsJOIN: 如果表中有至少一个匹配,则返回行 LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行 RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行 FULL JOIN: 只要其中一个表中存在匹配,就返回行
View Details海量数据(百万以上),其中有些全部字段都相同,有些部分字段相同,怎样高效去除重复? 如果要删除手机(mobilePhone),电话(officePhone),邮件(email)同时都相同的数据,以前一直使用这条语句进行去重: delete from 表 where id not in ( select max(id) from 表 group by mobilePhone,officePhone,email ) or delete from 表 where id not in ( select min(id) from 表 group by mobilePhone,officePhone,email ) 复制代码 其中下面这条会稍快些。上面这条数据对于100万以内的数据效率还可以,重复数1/5的情况下几分钟到几十分钟不等,但是如果数据量达到300万以上,效率骤降,如果重复数据再多点的话,常常会几十小时跑不完,有时候会锁表跑一夜都跑不完。无奈只得重新寻找新的可行方法,今天终于有所收获: //查询出唯一数据的ID,并把他们导入临时表tmp中 select min(id) as mid into tmp from 表 group by mobilePhone,officePhone,email //查询出去重后的数据并插入finally表中 insert into finally select (除ID以外的字段) from customers_1 where id in (select mid from tmp) 复制代码 效率对比:用delete方法对500万数据去重(1/2重复)约4小时 […]
View Details1.SQL SERVER的数据类型 数据类弄是数据的一种属性,表示数据所表示信息的类型。任何一种计算机语言都定义了自己的数据类型。当然,不同的程序语言都具有不同的特点,所定义的数据类型的各类和名称都或多或少有些不同。SQLServer 提供了 25 种数据类型: ·Binary [(n)] ·Varbinary [(n)] ·Char [(n)] ·Varchar[(n)] ·Nchar[(n)] ·Nvarchar[(n)] ·Datetime ·Smalldatetime ·Decimal[(p[,s])] ·Numeric[(p[,s])] ·Float[(n)] ·Real ·Int ·Smallint ·Tinyint ·Money ·Smallmoney ·Bit ·Cursor ·Sysname ·Timestamp ·Uniqueidentifier ·Text ·Image ·Ntext (1)二进制数据类型 二进制数据包括 Binary、Varbinary 和 Image Binary 数据类型既可以是固定长度的(Binary),也可以是变长度的。 Binary[(n)] 是 n 位固定的二进制数据。其中,n 的取值范围是从 1 到 8000。其存储窨的大小是 n + 4 个字节。 Varbinary[(n)] 是 n 位变长度的二进制数据。其中,n 的取值范围是从 1 到 8000。其存储窨的大小是 n + 4个字节,不是n 个字节。 在 Image 数据类型中存储的数据是以位字符串存储的,不是由 SQL Server 解释的,必须由应用程序来解释。例如,应用程序可以使用BMP、TIEF、GIF 和 JPEG 格式把数据存储在 Image 数据类型中。 (2)字符数据类型 字符数据的类型包括 Char,Varchar 和 Text 字符数据是由任何字母、符号和数字任意组合而成的数据。 Varchar 是变长字符数据,其长度不超过 8KB。Char 是定长字符数据,其长度最多为 8KB。超过 8KB 的ASCII 数据可以使用Text数据类型存储。例如,因为 Html 文档全部都是 ASCII 字符,并且在一般情况下长度超过 8KB,所以这些文档可以 Text 数据类型存储在SQL Server 中。 (3)Unicode 数据类型 Unicode 数据类型包括 Nchar,Nvarchar 和Ntext 在 Microsoft SQL Server 中,传统的非 Unicode 数据类型允许使用由特定字符集定义的字符。在 SQL Server安装过程中,允许选择一种字符集。使用 Unicode 数据类型,列中可以存储任何由Unicode 标准定义的字符。在 Unicode 标准中,包括了以各种字符集定义的全部字符。使用Unicode数据类型,所战胜的窨是使用非 Unicode 数据类型所占用的窨大小的两倍。 在 SQL Server 中,Unicode […]
View DetailsC#的数据类型可以分为3类:数值类型,引用类型,指针类型.指针类型仅在不安全代码中使用. 值类型包括简单类型(如字符型,浮点型和整数型等),集合类型和结构型.引用类型包括类类型,接口类型,代表类型和数组类型.值 类型和引用类型的不同之处是值类型的变量值直接包含数据,而引用类型的变量把它们的引用存储在对象中.对于引用类型的变量,完全有可能让两个不同的变量引 用同一个对象,这样一来,对其中一个变量的操作就会影响到被另一个变量引用的对象.对于值类型的变量而言,每一个变量有它们自己的数值,因此对其中一个变 量的操作不可能影响到另外一个变量.值类型所有的值类型都隐含地声明了一个公共的无参数的构造函数,这个构造函数叫做默认构造函数.默认构造函数返回一个初始为零的值类型的实例,称之为默认值.对于sbyte,byte,short,ushort,int,uint,long,ulong,默认值为0. 对于char,默认值是’"x0000′对于float,默认值是0.0F对于double,默认值是0.0D对于decimal,默认值是0.0M对于bool,默认值是false对于一个枚举类型,默认值是0对于一个结构类型,默认值的设置就是把所有值类型的域都设置为它们各自的默认值,把所有的引用类型的域赋为空简单类型C#提供一套预定义的结构类型叫做简单类型.简单类型用保留字定义,这些保留字仅仅是在System名字空间里预定义的结构类型的化名.比如int是保留字,System.Int32是在System名字空间中预定义类型.一个简单类型和它化名的结构类型是完全一样的,也就是说写int和写System.Int32是一样的.简单类型主要有整型,浮点类型,小数类型,布尔类型,字符型整型C#中支持9种整型:sbyte,byte,short,ushort,int,uint,long,ulong和char.Sbyte:代表有符号的8位整数,数值范围从-128 ~ 127Byte:代表无符号的8位整数,数值范围从0~255Short:代表有符号的16位整数,范围从-32768 ~ 32767ushort:代表有符号的16位整数,范围从-32768 ~ 32767Int:代表有符号的32位整数,范围从-2147483648 ~ 2147483648 uint:代表无符号的32位整数,范围从0 ~ 4294967295Long:代表有符号的64位整数,范围从-9223372036854775808 ~ 9223372036854775808 Ulong:代表无符号的64位整数,范围从0 ~ 18446744073709551615.char:代表无符号的16位整数,数值范围从0~65535.Char类型的可能值对应于统一字符编码标准(Unicode)的字符集.Char类型与其他整数类型相比有以下两点不同之处:1,没有其他类型到char类型的隐式转换.即使是对于sbyte,byte和ushort这样能完全使用char类型代表其值的类型, sbyte,byte和ushort到char的隐式转换也不存在.2,char类型的常量必须被写为字符形式,如果用整数形式,则必须带有类型转换前缀.比如(char)10赋值形式有三种:char chsomechar="A";char chsomechar=""x0065"; 十六进制char chsomechar=""u0065 ; unicode表示法字符型中有下列转义符:1,"’用来表示单引号2,""用来表示双引号3,"" 用来表示反斜杠4, "0 表示空字符5, "a 用来表示感叹号6, "b 用来表示退格7, "f 用来表示换页8, "n 用来表示换行9, "r 用来表示回车10, "t 用来表示水平tab11, "v 用来表示垂直tab浮点类型C#支持两种浮点类型:float和double.Float型所能表示的值的范围大约可以从1.5*10 -45~3.4* 10 38,精确到小数点后面7位.Double型所能表示的值的范围大约可以从5.0*10 -324~1.7* 10 308,精确到小数点后面15位或16位.如果二元操作中的其中一个操作数为浮点类型,那么另外一个操作数是整型或浮点类型,运算规则如下:1,如果其中一个操作数是整型,则操作数被转换为另一个操作数的浮点数类型;2,如果操作数之一为double,则另一操作数也被转换成double类型,运算以double类型的精度和取值范围进行,并且所得结果也为double类型;3,否则,运算至少将以float类型的取值范围和精度进行,并且所得结果也为float型.小数(decimal)类型小数类型非常适用于金融和货币运算.数值范围从1.0*10 -28~7.9* 10 28,精确到小数点后面28位.如果二元操作中的其中一个操作数是小数类型,那么另外一个从操作数是整型或小数类型.整型在运算前被转化为小数类型数.如果一个小数类型的算术运算产生了一个对于小数类型的格式来说太小的值,操作的结果将会变成0.如果一个小数类型的算术运算产生了一个对于小数类型的格式来说太大的值,就会触发溢出错误.小数类型较浮点类型而言,具有更大的精确度,但是数值范围相对小了很多.将浮点类型的数向小数类型的数转化时会产生溢出错误,将小数类型的数向浮点类型的数转化时会造成精确度的损失.因此,两种类型不存在隐式或显式转换.布尔型:值为true或false.没有标准能实现布尔类型和其他类型的转换.枚举类型:枚举类型的元素使用的类型只能是long,int,short,byte.默认类型是int.默认第一个元素的值是0,每一个连续的元素按1递增.可以给元素直接赋值.如:enum monthnames {January=1,February, march=31};可以强制定义其他类型,如:enum monthnames : byte{January ,February,March};结构类型结构类型也是一种值类型,使用它的目的是用于创建小型的对象,用以节省内存.下面的例子表示一个使用byte类型的4个字段的IP地址.using System;Struct IP //声明结构{ public byte b1,b2,b3,b4;}Class test{public static void Main(){IP myIP;myIP.b1=192;myIP.b2=168;myIP.b3=1;myIP.b4=101;Console.Write("{0}.{1}.", myIP.b1, myIP.b2);Console.Write("{0}.{1}", myIP.b3, myIP.b4);}}引用类型引用类型包括类类型,接口类型,代表类型和数组类型.1,类类型类 类型定义了一种数据结构,这个数据结构中包含了数据成员(如常量,字段和事件等),函数成员(如方法,属性,索引,操作,构造函数和析构函数等)和嵌套 类型.支持继承.2,对象类型对象类型是其他所有类型最终的基础类型.在C#中每一种类型都直接或者间接的源于object这个类类型.3,字符串类型字符串类型是直接从object中继承而来的密封类.String类型的值可以写成字符串文字的形式.4,接口类型一个接口声明一个只有抽象成员的引用类型,接口仅仅存在方法标志,但没有执行代码.当定义一个类时,如果类从接口派生,可以派生自多重接口;但是如果类从类派生,就只能从一个类派生.声明方法如例:interface iface{void showmyface();}5,代表类型代表引用一种静态的方法或者对象实例,引用该对象的实例方法.与其接近的是c/c++中的指针,但指针只能访问静态的函数,代表既能访问静态的方法,也能访问实例的方法.6,数组数组是包含一串变量的数据结构.数组变量也称做数组元素,它们具有相同的类型,这种类型也称做数组元素类型.数组的元素类型可以是任何类型,包括数组类型.数组用下标确定每一个数组元素的索引号.只有一个下标的数组称为一维数组,多于一个下标的数组称为多维数组.例:int[] a={0,2,4,6,8}; 等价于int[] a=new int[] {0,2,4,6,8};也可以这样初始化:a[0]=0; a[1]=2; a[2]=4; a[3]=6; a[4]=8;int[] a; //int型的一维数组int[,] […]
View Details