木子屋 Dnawo's BLOG

分类:Web编程

共 944 篇

C#向客户端注册脚本的几种方法

在C#中可以使用RegisterClientScriptBlock、RegisterStartupScript和RegisterClientScriptInclude来向客户端注册脚本,它们的区别是: RegisterClientScriptBlock:在页面内容前注册脚本; RegisterStartupScript:在页面内容后注册脚本; RegisterClientScriptInclude:在页面内容前引用外部脚本; 例如下边脚本: 显示结果为: 说明 1.RegisterClientScriptBlock和RegisterStartupScript推荐使用RegisterStartupScript,特别是当注册的脚本要调用页面的元素或函数时,如果使用RegisterClientScriptBlock可能会发生元素/函数还没加载完毕导致出错。…

说说PHP的字符串查找函数strpos

strpos函数用于在一个字符串中查找另一个字符串出现的位置,当存在时,返回一个整型的索引值,当不存在时返回false,但我们不能使用下边的例子来判断一个字符串是否存在于另一个字符串中: 原因是strpos可能返回布尔值false,但也可能返回一个与false等值的非布尔值,例如0或者"",所以上边例子应改为: 或者我们干脆可以自定义一个函数,类似于js和c#的indexOf,当存在时返回索引值,不存在时返回-1:

使用Environment类获取服务器信息

工作目录: Environment.CurrentDirectory 系统目录: Environment.SystemDirectory 当前目录: Server.MapPath(".") 计算机名称: Environment.MachineName 系统版本号: Environment.OSVersion.ToString() 处理器个数: Environment.ProcessorCount 系统启动时间(h): Environment.TickCount/3600000 网络域名: Environment.UserDomainName 当前用户: Environment.UserName…

在显式转换中使用checked进行溢出检查

当不能使用隐式转换安全的进行转换时(例如将short类型的值转换为byte类型),就必须使用显式转换,例如: 我们知道,short的取值范围比byte大,当将大于255的short类型的值显式转换为byte会出现什么情况呢? 运行结果没有出错,var1的值为231,为什么会是231呢?我们将上边的值转换为二进制看下: 1111100111 : 256 0011100111 : 231 0011111111 : 255 你会发现大于11111111部分全被丢弃了!这样的转换让我们变得没有安全感,这样的转换也变得毫无意义,幸好C#提供了checked关键字让我们在转换的过程中检查是有溢出,一旦溢出程序并会报错System.OverflowException:…

比较Select Case(VB.NET)和switch(C#)

1.一次测试一个字面值 Select Case语句: switch语句: 说明:switch的每个分支都必须以break(或其他跳转语句)结束,否则将继续执行下一分支的代码,但这在C#中是非法的,这与Select Case不同,Select Case中只要执行了一个分支后就不再执行其他分支!顺便说下,JavaScript的switch语句每个分支也需要break语句,但如果缺少break语句在JavaScript中也不会出错,结果剩下的分支的代码都将被执行! 2.一次测试多个字面值 Select Case语句: switch语句: 3.复杂的条件 Select Case语句: switch无法实现!…

ArrayList,List,Hashtable,Dictionary的应用

ArrayList的应用(System.Collections) List的应用(System.Collections.Generic) Hashtable的应用(System.Collections) Dictionary的应用(System.Collections.Generic) 说明:如果存储的元素是Object类型时,List和Dictionary会优于ArrayList和HashTable,因为在存储或检索值类型时ArrayList和HashTable经常要进行装箱和拆箱。

ASP.NET2.0个性化用户配置之存储匿名/登录用户信息

个性化用户配置是ASP.NET2.0的一个新特性,它主要依赖于ProfileBase类和ProfileManager类,其中ProfileBase类提供对配置文件属性值和信息的非类型化访问,ProfileManager类管理用户配置文件数据和设置。在启动启用了用户配置文件的应用程序时,ASP.NET会创建一个类型为ProfileCommon的新类,该类从ProfileBase类继承。强类型访问器被添加到profile配置节中为每个属性定义的ProfileCommon类中。ProfileCommon类的强类型访问器调用ProfileBase基类的GetPropertyValue和SetPropertyValue方法,分别用于配置文件属性值的检索和设置。ProfileCommon类的一个实例被设置为ASP.NET应用程序的Profile属性的值。 使用Profile与使用Session十分相似,但是更好用一些。与Session相似的地方在于,Profile是相对于一个特定的用户的,也就是说,每个Web应用程序的用户都有他们自己的profile对象。与Session不同的是,Profile对象是持久对象,因为他默认把信息保存在SQL Server Express数据库中,如果你向Session中添加一个项,在你离开网站时,该项就会消失,而Profile则完全不同,当你修改Profile的状态时,修改在多个访问之间均有效。还有另一点与Session不同,Profile是强类型的,Session对象仅仅是一个项集合而已,而profile对象则有强类型属性。 下边例子演示了使用个性化用户配置来保存匿名和登录用户信息:…

Hashtable使用案例

一、Hashtable简述 在.NET Framework中,Hashtable(哈希表)是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值对,其中key通常可用来快速查找,key是区分大小写的;value用于存储对应于key的值。Hashtable中key/value键值对均为object类型,所以Hashtable可以支持任何类型的key/value键值对。 二、Hashtable使用案例

ASP.NET2.0个性化用户配置之SQL Server数据库配置

在默认情况下,当第一次执行与用户配置有关的应用程序时,系统将自动为该应用程序创建一个SQL Server 2005 Express 的特定数据库实例,该数据库实例存储于应用程序根目录下的App_Data文件夹中,名称为ASPNETDB.MDF。该数据库将默认包括存储用户配置属性数据的数据表,以及其他与实现用户配置功能相关的对象等。对于使用 SQL Server 2005 实施开发的人员来讲,只需要配置好 Web.Config 文件、正确调用 Profile 属性、ProfileManager类即可,而无需关心例如数据库表设计与维护工作。目前应用程序多使用 SQL Server 7.0/2000来实施存储,由于这些版本的数据库发布时间较早,因此,并不具备对个性化用户配置功能的内置支持。在这种情况下,如果需要在 SQL Server 7.0/2000 数据库中存储用户配置属性数据,则必须对数据库进行预先配置,然后,才能正确使用个性用户配置功能。 一、使用aspnet_regsql配置SQL Server数据库 1.在命令行下进入"C:\WINDOWS\Microsoft.NET\Framework\"文件夹;…

推荐使用Redirect(string url, bool endResponse)进行客户端重定向

当我们使用Response.Redirect("Default2.aspx")来进行客户端重定向时,是无条件的、立即进行重定向,这在ASP时代可能引发一些问题,比如在重定向前打开的数据库连接如果没在重定向时及时关闭的话就会导致服务器资源被大量占用,所以每次使用Response.Redirect时我们都得时刻记得去关闭释放那些资源,这个问题在ASP.NET2.0中已经得到了解决,在ASP.NET2.0中Response.Redirect有两个重载函数: 重载函数Redirect(string url, bool endResponse)的参数endResponse表示当前页的执行是否应终止,true 终止,false不终止,这样我们就可以使用Response.Redirect("Default2.aspx",false)来解决上述的问题:程序仍按原来的流程在不需要连接时关闭释放数据库连接即可,不用在Redirect前多加一步去关闭释放!下边再举个例子说明: Default.aspx.cs:…