摘要: .net中的正则表达式使用高级技巧 前言 一、本系列文章不讲述基本的正则语法,这些可以在微软的JS帮助文档中找到,也可以Google一下 二、写系列文章的原因 1、正则很有用,而且经常要用 2、正则的一些高级用法有相当一部分人还没有理解和掌握 3、刚好又在网上看到了一篇文章错误的使用了正则式,使我有了写本文的冲动 ...
阅读全文
| 多媒体标记 |
|
|
| |
|
<BGSOUND> <EMBED> |
|
|
| <BGSOUND> 是用以插入背景音乐,但只适用於 IE,其参数设定不多。如下
<BGSOUND src="your.mid" autostart=true loop=infinite>
- src="your.mid"
设定 midi 档案及路径,可以是相对或绝对。
- autostart=true
是否在音乐档传完之後,就自动播放音乐。true 是,false 否 (内定值)。
- loop=infinite
是否自动反覆播放。LOOP=2 表示重复两次,Infinite 表示重复多次。 |
|
|
| <EMBED> 是用以插入各种多媒体,格式可以是 Midi、Wav、AIFF、AU 等等,Netscape 及 新版的 IE 都支援。其参数设定狻多。如下
<EMBED src="your.mid" autostart="true" loop="true" hidden="true">
- src="your.mid"
设定 midi 档案及路径,可以是相对或绝对。
- autostart=true
是否在音乐档传完之後,就自动播放音乐。true 是,false 否 (内定值)。
- loop="true"
是否自动反覆播放。LOOP=2 表示重复两次,true 是, false 否。
- HIDDEN="true"
是否完全隐藏控制画面,true 为是,no 为否 (内定)。
- STARTTIME="分:秒"
设定歌曲开始播放的时间。如 STARTTIME="00:30" 表示从第30秒处开始播放。
- VOLUME="0-100"
设定量的大小,数值是0到100之间。内定则为使用者系统本身之设定。
- WIDTH="整数" 和 HIGH="整数"
设定控制画面的宽度和高度。(若 HIDDEN="no")
- ALIGN="center"
设定控制画面和旁边文字的对 方式,其值可以是 top、bottom、center、baseline、 left、right、texttop、middle、absmiddle、absbottom。
- CONTROLS="smallconsole"
设定控制画面的外貌。预设值是 console。 console 一般正常的面板 smallconsole 较小的面板 playbutton 只显示播放按钮 pausecutton 只显示暂停按钮 stopbutton 只显示停止按钮 volumelever 只显示音量调整钮 | | |
摘自:闪吧
怎么实现无论进到哪个子页,背景音乐都一直在播放的效果
解决思路:
做一个框架页,分为两部分,一部分放背景音乐的页面,另一部分放主要页面,而且放背景音乐的部分设置高度为0,让它隐藏(如果是左右式的就用cols设置它的宽度为0)。
具体步骤:
代码示例:
<frameset rows="0,*">
<frame src="music.htm" frameborder="0" noresize>
<frame src="index.asp">
</frameset>
或者
<frameset cols="0,*">
<frame src="music.htm" frameborder="0" noresize>
<frame src="index.asp">
</frameset>
注意:对于不支持框架的浏览器,本例代码运行后将无法正常显示,这里如果需要提示用户,可以添加NOFRAME元素:
<frameset cols="0,*">
<frame src="music.htm" frameborder="0" noresize>
<frame src="index.asp">
</frameset>
<noframe>
<body>抱歉,您的浏览器不支持框架技术</body>
</noframe>
提示:rows="0,*"的意思是设置第一个框架的高度为0,第二个框架自动调整为文档区域高度减去第一个框架的高度所得的值。cols="0,*"也是相似的道理。
特别提示
代码运行后,只要index.asp页里没有链接是以_top(即链接目标取代框架页)方式打开,无论链接到哪个子页面,music.htm页的音乐将一直播放。
整个站点默认禁用 Session,而某个页面不禁用的做法。
先说一个不正确的做法:
整个站点的 Web.config 被设置为:
<configuration>
<system.web>
<sessionState mode="Off"/>
</system.web>
</configuration>
在单独需要用Sesssion的页面,设置
<%@ Page EnableSessionState="True"%>
这种做法是错误的,你会发现仍然是错误:
只有在配置文件或 Page 指令中将启用会话状态设置为真时,才可以使用会话状态
或者是:
Session state can only be used when enableSessionState is set to true, either in a configuration file or in the Page directive. Please also make sure that System.Web.SessionStateModule or a custom session state module is included in the <configuration>\<system.web>\<httpModules> section in the application configuration.
后面告诉原因。
正确的做法是
Web.config 节sessionState 不要使用下面配置,
<sessionState mode="Off"/>,
而是用其他几种配置方式。(不设置的默认配置是 InProc。 )
然后在在这个 Web.config 中设置
<configuration>
<system.web>
<pages enableSessionState="false" />
</system.web>
</configuration>
这样整个站点的页面默认是不打开Session的。
在你需要的页面的 使用如下 Page 设置
<%@ Page EnableSessionState="True"%>
或者在你需要打开Session的目录下,设置一个 web.config
<configuration>
<system.web>
<pages enableSessionState="true" />
</system.web>
</configuration>
分析原因:
<sessionState mode="Off"/> 是整个站点禁用了Session,你无法作特列处理。
另外,通过访问 System.Web.SessionState.HttpSessionState.Mode 属性的值,可以查看当前选定的会话状态。
上述知识点,不仅仅适用于 ASP.net 1.0 1.1 也适用于 2.0
资料:
HOW TO:在 ASP.NET 中禁用 ASP 会话状态
http://support.microsoft.com/?scid=kb;zh-cn;306996&spid=548&sid=89
摘自
数据类型 | 数据类型简写 | 标准命名举例 |
| Array | arr | arrShoppingList |
| Boolean | bln | blnIsPostBack |
| Byte | byt | bytPixelValue |
| Char | chr | chrDelimiter |
| DateTime | dtm | dtmStartDate |
| Decimal | dec | decAverageHeight |
| Double | dbl | dblSizeofUniverse |
| Integer | int | intRowCounter |
| Long | lng | lngBillGatesIncome |
| Object | obj | objReturnValue |
| Short | shr | shrAverage |
| Single | sng | sngMaximum |
| String | str | strFirstName |
| 控件类型 | 缩写 | 示例 |
| Animated button | ani | aniMailBox |
| Button | btn | |
| Check box | chk | chkReadOnly |
| ColorDialog | clrdlg | |
| Combobox,drop-down list box | cbo | cboEnglish |
| Communications | com | comFax |
| ContextMenu | ctxmnu | |
| Control(used within procedures when the specific type is unknown) | ctr | ctrCurrent |
| CrystalReportViewer | crvw | |
| Data | dat | datBiblio |
| Data grid | dgd | dgdTitles |
| Data list | dbl | dblPublisher |
| Data repeater | drp | drpLocation |
| Data-bound combo box | dbcbo | dbcboLanguage |
| Data-bound grid | dbgrd | dbgrdQueryResult |
| Data-bound list box | dblst | dblstJobType |
| Datetime picker | dtp | dtpPublished |
| Directory list box | dir | dirSource |
| DomainUpDown | dupd | |
| Drive list box | drv | drvTarget |
| ErrorProvider | err | |
| File list box | fil | filSource |
| Flat scroll bar | fsb | fsbMove |
| FontDialog | fntdlg | |
| Form | frm | frmEntry |
| Frame | fra | fraLanguage |
| Gauge | gau | gauStatus |
| Graph | gra | graRevenue |
| Grid | grd | grdPrices |
| GroupBox | grp | |
| HelpProvider | hlp | |
| Hierarchical flexgrid | flex | flexOrders |
| HScroll bar | hsb | hsbVolume |
| Image | img | imgIcon |
| Image combo | imgcbo | imgcboProduct |
| ImageList | ils | ilsAllIcons |
| Label | lbl | lblHelpMessage |
| Line | lin | linVertical |
| LinkLabel | lnk | |
| List box | lst | lstPolicyCodes |
| ListView | lvw | lvwHeadings |
| MAPI message | mpm | mpmSentMessage |
| MAPI session | mps | mpsSession |
| MCI | mci | mciVideo |
| Menu | mnu | mnuFileOpen |
| Month view | mvw | mvwPeriod |
| MonthCalendar | mcl | |
| MS Chart | ch | chSalesbyRegion |
| MS Flex grid | msg | msgClients |
| MS Tab | mst | mstFirst |
| NotifyIcon | nti | |
| NumericUpDown | nupd | |
| OLE container | ole | oleWorksheet |
| OpenFileDialog | ofdlg | |
| PageSetUpDialog | psdlg | |
| Picture box | pic | picVGA |
| Picture clip | clp | clpToolbar |
| PrintDocument | prndoc | |
| PrintPreviewControl | ppctl | |
| PrintPreviewDialog | ppdlg | |
| ProgressBar | prg | prgLoadFile |
| RadioButton | rbtn | |
| Remote Data | rd | rdTitles |
| RichTextBox | rtf | rtfReport |
| SaveFileDialog | sfdlg | |
| Shape | shp | shpCircle |
| Slider | sld | sldScale |
| Spin | spn | spnPages |
| Splitter | spt | |
| StatusBar | sta | staDateTime |
| SysInfo | sys | sysMonitor |
| TabContrl | tab | |
| TabStrip | tab | tabOptions |
| Text box | txt | txtLastName |
| Timer | tmr | tmrAlarm |
| Toolbar | tlb | tlbActions |
| TrackBar | trb | |
| TreeView | tre | treOrganization |
| UpDown | upd | updDirection |
| VScroll bar | vsb | vsbRate |
摘要: 写在前面:在进阶篇中,主要通过对使用存储过程,使用事务,加密连接串三部分内容的介绍,给企业库的初学者提供一点帮助。 一. 使用存储过程: 关于数据访问应用程序块的介绍在入门篇里面已经说过了,这里不再重复。下面我们来看看在数据访问应用程序块里面使用存储过程的方法: 1. 不传递参数:不...
阅读全文
写在前面:本来在前面说要写配置应用程序块的设计篇,现在我想先把各个应用程序块的入门篇和进阶篇写完后,再统一写设计篇,希望大家理解:)
在本篇随笔里面,一步一步说明怎么去用数据访问应用程序块来进行数据的访问,并给出相关的图示。
一.Data Access Application Block能够做什么?
1.提供最佳实践;
2.改善一致性;
3.改善安全性;
4.改善易用性;
二.Data Access Application Block使用:
这里我把DAAB的使用过程总结为三部曲。在开始前我们假设已经有一个新建好的项目,并且有Web.config或App.config配置文件。
第一步 定义配置:
1.运行Enterprise Library Configuration 工具,选择File | Open Application 打开App.config文件
2.右击Application,并选择New | Data Access Application Block

3.我们看到,在创建了一个Data Access Application Block的同时,也创建了一个Configuration Application Block。因为所有的应用程序快都是以配置应用程序块为基础的。
4.修改数据库的名称:

5.修改服务器的名称:

6.右击Sql Connection String,选择Parameter,创建一个新参数:

7.修改参数的名称为Uid,并修改Value,指定登录名:

8.用同样的方法再创建一个Password Parameter,取名Pwd;Value为登录密码:
9.最后创建一个数据库的实例:

10.选择File | Save All命令保存全部:
11.在项目中选择 属性|生成事件|生成后事件命令行 输入如下内容:
copy "$(ProjectDir)\*.config" "$(TargetDir)"
第二步 创建数据库实例:
创建数据库实例有两种方法,一是默认的数据库实例,一是用命名实例映射到配置文件。
1
/**////创建默认的实例 2
Database db = DatabaseFactory.CreateDatabase();
3
4
/**////创建数据库实例 5
Database db = DatabaseFactory.CreateDatabase("NorthWind"); 第三步 执行SQL语句:
DAAB可以执行静态的SQL语句,或者存储过程等。
相关代码如下:
1
/**//// <summary>
2
/// 返回DataSet类型
3
/// </summary> 4
private DataSet GetDataSet()
5
{
6
DataSet ds = db.ExecuteDataSet(CommandType.Text,"SELECT * FROM Employees");
7
8
return ds;
9
}
10
11
/**//// <summary>
12
/// 返回DataReader类型
13
/// </summary>
14
/// <returns></returns> 15
private DataReader GetDataReader()
16
{
17
DataReader dr = db.ExecuteReader(CommandType.Text,"SELECT * FROM Employees");
18
19
return dr;
20
}
21
22
/**//// <summary>
23
/// 返回单值
24
/// </summary>
25
/// <returns></returns> 26
private int GetSigleValue()
27
{
28
int iCount = db.ExecuteScalar(CommandType.Text,"SELECT COUNT(*) FROM Employees");
29
30
return iCount;
31
}
总结,本文只是简单的给出DAAB的使用过程,在下篇的进阶篇中我会写使用DAAB执行存储过程以及参数的传递、事务的支持,连接信息的加密等内容。
摘自Terrylee的技术专栏
摘要: 在前一篇文章中,讲述了配置应用程序块的最简单的介绍,在本篇文章中我主要介绍一下配置应用程序块的响应配置变更通知,保护配置信息(加密配置信息),面向高级人员的扩展机制,配置数据的缓存等几个方面。在剖析篇中我会去分析配置应用程序块的底层设计及类设计。 一.响应配置变更通知: Configuration Application Block提供了一个事件机制,当存储的配置变更时通知应用程序 ...
阅读全文
摘要: 写在前面: 最近准备写Enterprise Library Step By Step的系列文章,对于每一个应用程序块,我都会用入门篇,进阶篇,剖析篇三篇文章去写。 在入门篇里会详细介绍应用程序块的使用步骤,主要是针对新手入门的;进阶篇会介绍一些应用程序块的更深的应用及扩展机制;剖析篇会去分析应用程序块的底层设计和类设计的一些内容。所有的观点都纯属个人理解,有不当之处请大家多多指教。 一...
阅读全文
摘要: 适配器模式(Adapter Pattern) ——探索设计模式系列之八 Terrylee,2006年2月 概述 在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足的。那么如何应对这种“迁移的变化”?如何既能利用现有对象的良好实...
阅读全文