【ASP】分类文章列表

ASP.NET中防止页面多次提交的代码实现

此处提供的代码用来实现当asp.net页面中的某个Button被点击后disable掉该页面中所有的Button,从而防止提交延时导致 的多次提交。基于之前的onceclickbutton脚本.
//ASP.NET中防止页面多次提交的代码:javascript< script language=”javascript”> < !– function disableOtherSubmit() {
var obj = event.srcElement;
var objs = document.getElementsByTagName(‘INPUT’);
for(var i=0; i< objs.length; i++)
{
if(objs[i].type.toLowerCase() == ’submit’)
{
objs[i].disabled = true;
}
}
} //–> < /script>//ASP.NET中防止页面多次提交的代码:asp.netpublic class PreventMultiClick : System.Web.UI.Page {
protected System.Web.UI.WebControls.Button Button1; protected System.Web.UI.WebControls.Button Button2;
protected System.Web.UI.WebControls.LinkButton LinkButton1; protected System.Web.UI.WebControls.Button Button3; private void Page_Load(object sender, [...]

日期:2010年03月13日 | 分类:.NET, ASP

最简单的ASP分页代码–ASP源码,ASP分页,ASP培训

<%
set conn=server.createobject(“adodb.connection”)
conn.open(“DRIVER=Driver do Microsoft Access (*.mdb);UID=admin;pwd=;dbq=”&server.mappath(“1.mdb”))
set rs=server.createobject(“adodb.recordset”)
sql=”select * from student”
rs.open sql,conn,3
rs.pagesize=20
if request(“page”)<>”” then
epage=cint(request(“page”))
if epage<1 then epage=1
if epage>rs.pagecount then epage=rs.pagecount
else
epage=1
end if
rs.absolutepage=epage
%>
<table border=”0″ cellpadding=”0″ cellspacing=”1″ bgcolor=”#0000FF” width=”80%” align=”center”>
<tr bgcolor=”#FFFFFF” align=”center”>
<th><%=rs(0).name%></th><th><%=rs(1).name%></th><th><%=rs(2).name%></th>
</tr>
<%
for i=0 to rs.pagesize-1
if rs.bof or rs.eof then exit for
%>
<tr bgcolor=”#FFFFFF” align=”center”>
<td><%=rs(0).value%></td><td><%=rs(1).value%></td><td><%=rs(2).value%></td>
</tr>
<%
rs.movenext()
next
%>
</table>
<p align=”center”>
<a href=””>首页</a>&nbsp;
<a href=”index.asp?page=<%=epage-1%>”>前一页</a>&nbsp;
<a href=”index.asp?page=<%=epage+1%>”>后一页</a>&nbsp;
<a href=”index.asp?page=<%=rs.pagecount%>”>末页</a>
</p>
<p align=”center”>现在是第<%=epage%>页一共有<%=rs.pagecount%>页</p>
<%
conn.close()
%>
*****************************************************
表有三个字段,表明为student其他的就不需要改了,那个pagesize也可以改一下,如果记录少的话.

日期:2010年03月10日 | 分类:ASP

ASP使用MYSQL数据库全攻略

MYSQL数据库以它短小、方便、速度快、免费等优点成为很多网站目前首选数据库,但一般都是用PHP+MYSQL相结合来开发各种动态页面,其实ASP也可以使用MYSQL数据库开发动态页面,小弟我也是刚刚学会,不敢独享,所以特写了这篇文章供大伙参考。
我的环境是WINDOWS98+PWS4.0+mysql-3.23.32-win+PHP4
必要的软件:PWS4.0(呵呵,废话)
mysql-3.23.32-win(这个是最新版的)
myodbc-2.50.36-dll(这个是最重要的,MYSQL ODBC的驱动程序,可以到www.mysql.com下载)
第一步:安装MYSQL ODBD的驱动程序,将下载的myodbd-2.50.46-dll文件复制到windows\system目录下(windows2000
是winnt/system32)然后建立一新文件,扩展名为reg(就是注册表文件),将以下内容复制到该文件中。
REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\myodbc driver]
“UsageCount”=dword:00000002
“Driver”=”C:\\WINDOWS\\System\\myodbc.dll”
“Setup”=”C:\\WINDOWS\\System\\myodbc.dll”
“SQLLevel”=”1″
“FileUsage”=”0″
“DriverODBCVer”=”02.50″
“ConnectFunctions”=”YYY”
“APILevel”=”1″
“CpTimeout”=”120″
[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers]
“myodbc driver”=”installed”
保存后双击该文件,将上面代码注册到WINDOWS注册表中。
如果安装在windows2000中,则Driver和Setup主键的值要做相应改变,这里我想就不用多说了。
如果成功,在控制面板/ODBD数据源的驱动程序里将看到myodbd driver这一项!
第二步:建立ASP文件链接数据库。
这里有两种方法,一种是在ODBC数据源中建立一个系统DSN。后来我发现不建立也可以在ASP中使用MYSQL,方法在下文将讲道。
打开控制面板/ODBD数据源,选择系统DSN,然后添加一个新的DSN,驱动程序选择myodbd driver,会出现一个对话框供输入mysql    相关信息。
Windows DSN name: 所要建立DSN的名称
Mysql Host (name or ip):Mysql服务器的名称或者是IP地址,通常填localhost
Mysql database name:需要使用数据库的名称,数据库在Mysql管理程序中建立。这里我们使用一个例子。数据库名:hc188
里面有数据表:user 数据表有两个字段分别是:username和password,随便插入几个数据。
user:链接数据库的用户名,我填的是root超级用户
password:链接数据库用户密码,如果没有,可以不填
Port(if not 3306):Mysql在服务器的端口,如果不填默认为3306
SQL command on connect:使用sql命令链接数据库,这项可以不填
填写完毕后选择OK保存。
下面链接数据库的ASP代码!
<%
strConnection = “dsn=hc188;driver={myodbd driver};server=localhost;uid=root;pwd=;database=hc188″
Set adoDataConn = Server.CreateObject(“ADODB.Connection”)
adoDataConn.Open strConnection
strQuery = “SELECT * FROM user”
Set rs = adoDataConn.Execute(strQuery)
If Not rs.BOF Then
%>
<TABLE>
<TR>
<TD<b>username</b></TD>
<TD><b>password</b></TD>
</TR>
<%
Do While Not rs.EOF
%>
<TR>
<TD><%=rs(“username”)%></TD>
<TD><%=rs(“password”)%></TD>
</TR>
<%
rs.MoveNext
Loop
%>
</TABLE>
<%
Else
Response.Write(“Sorry, no data found.”)
End If
rs.Close
adoDataConn.Close
Set adoDataConn = Nothing
Set rsEmailData = Nothing
%>
第二种方法:我在使用中想过如果不建立系统DSN,是否也可以使用MYSQL数据库呢?结果是可以的。
方法很简单,把上面ASP代码第二行代码改为:
strconnection=”DefaultDir=;Driver={myodbc driver};database=hc188″
我奇怪的发现,这种方法连用户名和密码都不需要就可以使用。是不是MYSQL的一个BUG呢?
以上代码全部经测试通过!

日期:2010年03月10日 | 分类:ASP, 数据库

用Asp+XmlHttp实现RssReader功能

<style>
body {margin:10px;background-color:#ffffff;margin-top:6px;}
form{margin:0px;}
* {font:12px tahoma;line-height:140%;color:#000000}
.title {font-weight:bold;color:red;}
.time {font:10px;color:#999999;}
a {text-decoration:none;color:blue;}
</style>
<script type=”text/javascript”>
var switcher=0;
</script>
<body ondblclick=”if(switcher==0){document.styleSheets[0].addRule(‘div’,’display:none’);switcher=1}else{document.styleSheets[0].addRule(‘div’,’display:block’);switcher=0}”>
<form name=”rssform” method=post action=””>
RSS资源:<INPUT TYPE=”text” NAME=”RssFeed” size=60 style=”height:22px” value=”<%=request(“RssFeed”)%>” onfocus=select()> <input type=”submit” value=”Read It”> &nbsp;&nbsp;双击鼠标可以关闭摘要,只显示标题
</form>
<hr/>
<%
If(request(“RssFeed”)=””) Then
url=”/rss2.asp”
else
url=request(“RssFeed”)
End If
Set xml = Server.CreateObject(“Microsoft.XMLHTTP”)
xml.Open ”GET”, url, False
xml.Send
Set xmlDom = server.createObject(“microsoft.xmldom”)
xmlDom.async=False
xmlDom.ValidateOnParse=false
xmlDom.load(xml.responseXML)
if xmlDom.ReadyState>2 Then
set oItem=xmlDom.getElementsByTagName(“item”)
for i=0 to oItem.length-1
response.write ”<span style=’font:bold 9px verdana;color:#000000′>”&i+1&”</span>. <a class=’title’ href=’”&oItem(i).childNodes(1).text&”‘ target=’_blank’>”&oItem(i).childNodes(0).text&”</a> <span class=’time’>["&oItem(i).childNodes(3).text&"]<br />”
response.write ”<div>摘要:”&oItem(i).childNodes(4).text&”</div><br>”
next
end if
%>

日期:2010年02月01日 | 分类:.NET, ASP

ASP.NET4.0的新功能 SEO 增强

  ASP.NET4.0提供了一系列新的特性实现网站的 SEO优化,包括:
  Page类的新属性:Page.MetaKeywords 和 Page.MetaDescription;
  ASP.NET Web Forms 新的URL路由功能;
  Response.RedirectPermanent()、Response.RedirectToRoutePermanent()方法等。
  Page.MetaKeywords 和 Page.MetaDescription属性将生成 html 标记中的 和 ,例如
  C# 代码
  Page.MetaDescription = “ASP.NET 4.0学习站点:http://dotnet.aspx.cc/”;
  Page.MetaKeywords = “孟宪会”;
  将生成如下的代码:
  HTML 代码
  Response.RedirectPermanent()将进行HTTP 301(Moved Permanently)重定向。

日期:2010年01月27日 | 分类:.NET, ASP

基于.net平台的web框架搭建

  最近基于ExtJs和asp.net mvc做了一个系统.来总结下.一起讨论下.
  一.技术分析
  1.web数据传输
  ExtJS作为前端UI展现层,传输数据格式为json或者xml,一般大部分为json.
  2.asp.net mvc
  (不要考虑太多mvc其他特性,controller+method就够了)的和路由url很好的符合了这一要求,实现起来很轻松.
  3.选一款依赖注入容器
  只要你好好学过一款Ioc组件,概念都还是一样的,做法不同而已,我选的是微软的Unity,
  这里我并没有把Service配置在xml中,根据我的理解,大部分软件并不需要这么灵活,我就纯注册就够了(其实往往是这样,我们可以问问自己,我们用到了多少功能).因为大部分都是注册一次,永不修改的…真的有必要的时候可以提出
  Ioc组件很多,个人认为比较强大的还是spring.net,功能非常丰富,还有AOP功能,最主要的是其可以和其他组件结合的很好.
  容器作为底层服务,主要就是为我们提供灵活性.想办法与现有组件结合,注册相关服务.
  4.数据库操作(NHibernate)
  3年前我会选ADO.NET
  2年前我选Microsoft.Practices.Data.Application
  1年前我选linq to sql
  现在我选nhibernate
  关于NHibernate映射
  (1)若你是初学者,乖乖的自己手动配吧
  (2)若你喜欢linq的,有一款FluentNHibernate可供选择(用新技术请考虑风险,玩的没关系)
  (3)若你映射配置文件玩的很熟悉了,就用NHibernate.Mapping.Attributes挂标签自动生成吧(不推荐用什么代码生成器,都是要重新改的)
  5.比较java web经典平台
  比较庆幸,之前有接触过java,java的web编程架构很稳定,3年前如此,现在还是一样,不同的只是版本升级而已,这点.net程序员比较惨的.这也见证了spring,hibernate,struts(webwork)在目前而言是最好的拍档.
  换成.net平台也就是spring.net(Ioc容器)+nhibernate(orm)+asp.net mvc
  spring.net和nhibernate都属于java移植产品,所以应该来说资料是非常的多,想学习的人,应该把眼光放到java社区中,收获会很多的,稍微比较下c#和java语言就好了(千万别学了就跑去学java了:)).
  asp.net mvc对比struts而言,方便了很多,但不同的是java附产品比较多,像asp.net mvc这样的框架,java也有些框架已经开始改进了(看到过,基本上理念是一样的).
  当然这里均采用的开源路线,大家也可以采用微软自家平台的技术.
  二.技术串联
  1.注册容器
  2.初始化Nhibernate
  我们都知道Ioc是可以与asp.net mvc结合的
  3.Nhibernate与容器配合法
  (1)Nhibernate与spring.net的结合,这里已经有经典例子在了,何谓经典例子,就是大家都这么干,而且也没出什么问题,我也就这么干,确实有点道理的…虽然有时候真不懂为什么这么干。。。呵呵
  (2)用单例的方式在应用启动时注册,如上法
  (3)Nhibernate若映射换FluentNHibernate的话,或者加入linq to nh,则整个设计就要重新考虑了
  我想上面的设计有点意思,特别是加入了linq to nh我的设想是这样的
  (1)简单查询用linq to nh
  (2)hql主打,标准查询辅助…
  (3)若由于对nh框架不熟,导致查不出来,或者遇到速度慢,先上t-sql(原因一般都是自身学的不好造成的,先怀疑自己,怀疑不下去了再去怀疑框架本身…)
  三.项目细分
  这里忽略分布式应用,我没具体搞过…
  Entity项目一个
  Service接口项目一个
  Service接口默认实现项目一个
  Domain项目一个
  主体辅助类项目一个(放杂七杂八用的)
  测试项目一个(可选)
  web相关项目一个(放与web相关的和controller)
  web主打项目一个(运行项目,主放js用…)
  基本上最基本的就是这样,你可以细分,也可以把上面很多项目合并为同一项目.
  若想灵活就多用反射与配置文件
  四.细化
  若要完成一般的数据增删改系统的话,我们还可以稍微细化封装,这样的封装是很方便的.
  1.没有绝对的灵活,需要一定的耦合,ext框架对于后端请求的json数据有一定要求,所以数据转换在所难免,所以准备一些通用的数据类型转换的功能
  2.对于千篇一律的数据增删改,若无特殊的业务逻辑,可考虑借助asp.net mvc和反射功能完成,这样一个controller的设计可以代替很多个.
  3.在传json时勿使用延迟加载等特性.
  4.一个hql配置系统,不要因为某一查询条件改了而重新编写代码,可以考虑做个机制,把hql语句提取出来
  5.巧用nhibernate拦截机制,日志必不可少
  6.一套稳定的权限机制
  7.对于ext,要有一套js加载机制
  总结起来细化的都是对于不同需求而变化设计的.
  如果不是很难的项目,花一段时间实践,这种搭配很容易学会.
  接下来重点还是回到.net framework来学习.

日期:2010年01月27日 | 分类:.NET, ASP

2009年微软Silverlight十大流行应用

      微软在2009年12月,发布Silverilght 4 Beta版本,其强大的功能,又一次吸引了众多RIA程序员的眼球,列出十个最流行的Silverlight应用项目如下:
     1. Microsoft SDK for FacebookSNS应用是2009年的热门话题,为了推广Silverlight,微软很快推出了Silverlight FaceBook SDK。
     2. Silverlight 3 和 Expression 3对于应用开发人员和界面设计人员来说,Silverlight Tools和Expression系列是最热门的应用。通过这两个应用,开发人员和设计人员可以快速开发出专业的Silverlight应用。
     3. Silverlight 4 BetaSilverlight 4 的发布,让大家耳目一新,更多新的功能吸引了众多微软技术的追随者。
     4. NASA应用Silverlight技术应用于NASA,NASA使用Silverlight技术播放太空空间站图片组。
     5. Netflix 和 Windows Media CenterNetflix使用Silverlight多媒体技术提供在线电影DVD视频查看服务。
    6. Wimbledon (温布尔顿网球公开赛)温布尔顿网球冠军赛使用Silverlight技术进行在线视频播放。
     7. NBC使用Silverlight技术获得艾美奖NBC使用Silverlight技术提供HD高清2008奥运会转播视频,获得艾美奖。
      8. NAB09的IIS Smooth Streaming洛杉矶NAB 2009使用IIS+Silverlight进行高清视频播放。
      9. 迈克尔杰克逊纪念视频网迈克尔杰克逊的粉丝使用Silverlight技术,创建迈克尔杰克逊的音乐纪念网站。
      10. Silverlight Bing和Bing Map控件微软提供Silverlight Bing Visual Search服务,另外发布了Bing Map控件。

日期:2010年01月26日 | 分类:ASP, 业界动态

ASP实现网页打开任何类型文件都保存

  当页面上有一个链接指向服务器一个Word文件,当客户端机器有安装Office时,点击链接将调用Word打开浏览;当客户端机器没有安装Office时,点击链接将弹出保存对话框。总结一下即如果浏览器认识文件类型,就会自动打开;如果不认识,则会提示客户保存。可是有时候我们希望不管什么类型文件,都不要打开,直接让客户端保存。要达到这个要求,对于保存在服务器硬盘上的文件就得利用ASPUpload组件的SendBinary方法来实现,而对于保存在数据库中的文件则只须打开记录集,然后将二进制数据直接输出到客户端即可,不过要告诉浏览器文件的MIME类型、文件名称和文件大小。
  1.服务器端硬盘上的文件
以下是引用片段:
<% 
Dim Upload,FilePath 
Set Upload = Server.CreateObject(“Persits.Upload”) 
FilePath = Server.MapPath(“.”) & ”\” & ”2003529213019.txt” 
‘SendBinary参数说明: 
‘参数一:文件物理路径 
‘参数二:是否将文件的MIME类型等信息传送给浏览器 
‘参数三:文件类型,可以指定具体的MIME类型,但一般都可以使用application/octet-binary 
‘参数四:让客户端保存文件还是直接打开。True:保存;False(默认):打开 
Upload.SendBinary FilePath,True,”application/octet-binary”,True 
%> 
  2.服务器端数据库中的文件
<% 
Dim objConn,objRs 
Set objConn = Server.CreateObject(“ADODB.Connection”) 
Set objRs = Server.CreateObject(“ADODB.RecordSet”) 
objConn.open ”Driver={Microsoft Access Driver (*.mdb)};dbq=” & Server.MapPath(“db1.mdb”) 
objRs.open ”select * from t5 where id=2″,objConn,1,3 
Response.ContentType = ”application/octet-stream” 
Response.AddHeader ”Content-Disposition”,”attachment;filename=” & objRs(“filename”) 
Response.AddHeader ”Content-Length”,CStr(objRs(“size”)) ’此处必须用CStr转换 
Response.BinaryWrite objRs(“file”) 
objRs.close 
Set objRs = nothing 
objConn.close 
Set objConn = nothing 
%> 
  此法要求保存文件时需同时保存文件名及文件大小!若未指定文件名及大小,如果浏览器认识该文件类型,将会自动打开;如果不认识,才会提示客户保存!

日期:2010年01月26日 | 分类:ASP

用ASP取出HTML里面的图片地址的函数

    用ASP取出HTML里面的图片地址的函数主要原理就是用正则判断的属性。这在采集程序中将非常有用。
  函数如下:
以下是引用片段:
Function ShowPic(str)  
  Set objRegExp = New Regexp’设置配置对象   
  objRegExp.IgnoreCase = True’忽略大小写   
  objRegExp.Global = True’设置为全文搜索   
  objRegExp.Pattern = ”<img.+?>”  
  ’为了确保能准确地取出图片地址所以分为两层配置:首先找到里面的<img>标签,然后再取出里面的图片地址后面的getimgs函数就是实现后一个功能的。   
strs=trim(str)   
Set Matches =objRegExp.Execute(strs)’开始执行配置   
For Each Match in Matches   
RetStr = RetStr &getimgs( Match.Value )’执行第二轮的匹配   
Next   
ShowPic = RetStr  
End Function  
Function getimgs(str)   
getimgs=””   
Set objRegExp1 = New Regexp   
objRegExp1.IgnoreCase = True   
objRegExp1.Global = True   
objRegExp1.Pattern = ”http://.+?”””‘取出里面的地址   
set mm=objRegExp1.Execute(str)   
For Each Match1 in mm   
getimgs=getimgs&left(Match1.Value,len(Match1.Value)-1)&”||”‘把里面的地址串起来备用   
next   
End Function   
‘取得图片内容  
function getHTTPPage(url)   
on error resume next   
dim http   
set http=server.createobject(“MSXML2.XMLHTTP”)’使用xmlhttp的方法来获得图片的内容   
Http.open ”GET”,url,false   
Http.send()   
if Http.readystate<>4 then   
exit function   
end if   
getHTTPPage=Http.responseBody   
set http=nothing   
if err.number<>0 then err.Clear   
end function   
‘保存图片  
function saveimage(from,tofile)   
dim geturl,objStream,imgs   
geturl=trim(from)   
imgs=gethttppage(geturl)’取得图片的具休内容的过程   
Set objStream = Server.CreateObject(“ADODB.Stream”)’建立ADODB.Stream对象,必须要ADO 2.5以上版本   
objStream.Type =1′以二进制模式打开   
objStream.Open   
objstream.write imgs’将字符串内容写入缓冲   
objstream.SaveToFile server.mappath(tofile),2′-将缓冲的内容写入文件   
objstream.Close()’关闭对象   
set objstream=nothing   
end function   
‘调用实例  
Dim strpic,i,fname  
strpic = ShowPic(“<DIV align=center><IMG src=””图片地址”” border=0></DIV>”)  
strpic = Split(strpic,”||”)  
If UBound(strpic) > 0 Then   
For i = 0 To UBound(strpic) - 1  
‘保存图片  
fname=cstr(i&mid(strpic(i),instrrev(strpic(i),”.”)))   
saveimage(strpic(i),fname)  
Next  
Else  
End If

日期:2010年01月26日 | 分类:ASP

Moonlight 2.0紧随Silverlight而来

       Moonlight 2.0版本现在可以从Novell的Mono项目网站上下载了,可用于Firefox插件。这个软件允许WMA文件和内容在Linx下执行,并使用微软的 富互联网Silverligh技术。新的版本,原定几个月彰推出,目前是为了广泛兼容Silverlight 2.0。
        当前微软的RIA产品稳定版本是3.0,但公司已经在他的专业开发者大会上推出了4.0测试版。如果Moonligh开发团队能按全的雄心目标,根 据路线图计划Silverlight 3的Linux实现应该在2010年第三季度推出,届时也将推出Moonlight 4 alpha版本。
        有媒体报导引用了Novell产品开发副总裁Miguel de Icaza,他说在Moonlight 2中将包含一些 Silverlight 3介绍中的功能。例如:模块化媒体管道,Ogg和Dirac编解码器,改进了流媒体功能让用户在视频中前进后退几乎看不到延迟。 3D像素渲染没有实现。
         Moonlight的开发者应用程序需要使用Microsoft的Visual Studio开发环境或MonoDevelop,它的2.2版本昨天刚刚发布。Mono runtime包括了Moonlight 2将允许 C#, Ruby, Python和JavaScript开发者为Moonlight开发应用。
         最后还提到了专约问题,微软承诺不会起诉用户和厂商使用Moonlight中的微软技术,这意味着linux发行版,如Ubuntu或Fedora将可以包括Moonlight发行,而不会受到微软诉讼恐惧。
        微软经常使用承诺一词,以后谁知道会不会发生。

日期:2010年01月25日 | 分类:ASP

赞助商链接

广而告之

友情链接

关于站点 - 联系我们 - 网站大事 - 友情链接 - 免责声明 - 意见反馈 - 网站投稿 - 站点地图
版权所有开心编程网禁止转载! Copyright © 2009-2010 All Rights Reserved. Email:hbhgfzk@126.com