欢迎来到池州三陆五信息科技有限公司- 未来科技

微信
手机版
网站地图

asp.net网站_ASP.NET网站在编译时,首先将语言代码编译成

2024-09-04 11:40:07 栏目 : 科技资讯大全 围观 : 0次

asp.net网站_ASP.NET网站在编译时,首先将语言代码编译成

大家好,今天我将为大家讲解asp.net网站的问题。为了让大家更好地理解这个问题,我将相关资料进行了整理,现在就让我们一起来看看吧。

文章目录列表:

1.asp.net???

2.ASP.NET实现网站的流程是什么

3.asp.net如何保存网页asp网页怎么放网上

4.如何发布asp.net的网站(用IIS发布)

5.asp.net如何设置网站首页asp网页怎么打开

6.构建ASP.NET网站十大必备工具

asp.net???

LZ说的是一个网站的开发,那么就不说之前的用户调研之类的了。进入开发阶段的话,需要这些工作

1、原型制作:做出简单的线框图,体现页面的大致布局及用户的交互;

2、高保真原型:把之前走的线框图配图,上色,基本上是美工干的活儿。

3、前端页面开发:由前端开发工程师将高保真原型开发成页面文件。前端开发工程师的输出物大多都是HTML页面,当然,也可以是jsp、asp、aspx、php甚至EXT-js等。

<前面这三个阶段是顺序的>

4、设计:含架构设计、详细设计、数据库设计等,这个设计要做细了,内容不少,但是都是为之后的开发做准备的,做的越细越好。时间上,架构设计是_早要做的,然后确定功能之后可以尽心详细设计&数据库设计等。

5、开发阶段,这个阶段就是设计完开始的编码阶段了。拿着第3阶段前端工程师给的前端页面进行系统开发。这个阶段如果设计的好的话完成可以分层进行工作。例如MVC结构的系统的话,可以控制层、视图、模型同时进行,当然这就要求前期设计做得很到位了。否则整合会出乱子。

6、LZ说的_后一个转成静态页是不是说做伪静态?这个工作如果要做的话,_好开发的时候就有考虑一些,可以做开发的时候就一起把伪静态工作给做了。

可以说所有B/S结构的系统都大致是以上的这些流程,当然,C/S结构的系统也差不多。

当然,这个流程这个东西是灵活的,具体项目的排期是需要根据项目的实际情况进行安排。

ASP.NET实现网站的流程是什么

学习一门语言(C#,VB任选其一,建议学C#.

2.熟悉.net框架,明白前台html代码(.aspx)与后台逻辑(.cs)分离的机制。

3.学习数据库的基本使用:新建数据库,新建数据表,编写SQl语句,编写存储过程等等。

4.学会了上述三点,就可以做网站了,网站的功能可以实现,但是网站的交互效果会有欠缺,需要进一步学习下面的技能。

5.学习javascript和Ajax,进一步提升页面的交互性(效率)。

6.如果有兴趣,还可以学学CSS,是页面更漂亮(不是必须的,一般会有专门的美工人员来做)。

如果只是单纯的用Dreamweaver拖拽建html页面,产生的冗余代码过多,不便于维护和利用,建议自己写。

ASP.NET不是一种语言,而是创建动态Web页的一种强大的服务器端技术,而不是你说的软件。.NET是一个_,一个抽象的_的概念。C#是一个程序设计语言,仅仅是一个语言。C#符合.NET CLR中的公共语言运行规范当然所有的.NET Language都是符合这个规范的例如:VB.NET、XAML和C++/CLI....等等。

asp.net如何保存网页asp网页怎么放网上

ASP。NET(c#)程序实现将网页保存为:网页,全部(*html)

webBrowser是VS自带的控件,本质是IE浏览器的内核;

实现原理:通过WebBrowser控件加载要保存的页面,然后通过该控件获取加载的页面内容,_后将获取的内容保存为相应的文件。

私有voidwebbrowser1_documentcompleted(对象发送方,WebBrowserDocumentCompletedEventArgse)

{

网络浏览器1。Url=新Uri();

stringhtml=webBrowser1。DocumentText

字符串名称=字符串。格式(

//打开file(),或者通过File比如fs=File创建。创建(路径,1024)

系统。FileStreamfs=新系统。IO.FileStream(名称,系统。IO.filemode.new);

//转换成字节写数据(可以用中文写)

Byte[]info=新的info编码(true)。GetBytes(html);

//字节数组,字节偏移量,写入的_字节数

fs。写(info,0,info。长度);

fs。close();

////打开文件

//fs=新系统。IO.FileStream(名称,系统。IO.FileMode.Open,System。IO.fileaccess.read);

////读取

//系统。IO.BinaryReaderr=新系统。IO.binaryreader(fs);

//for(intI=0;我i)

//{

//控制台。WriteLine(r.readint32());

//}

//fs。close();

}

asp.net写网站时用户的注册信息如何存放在数据库中?

很简单,就是将注册用户所用的txtUserName,txtPassWord,值存进数据库中用户表user里就行了。

SqlConnetionnewconn=newSqlConnection("server=.;database=;sa=;pwd=;");

conn.Open();

stringstr="insertintouser(name,password)values('"+txtUserName.Text.Trim()+",'"+txtPassWord.Text.Trim()+""')";

SqlCommandcmd=newSqlCommand(str,conn);

怎样用asp实现上传到文件夹,路径保存在access数据库中?

直接给个上传按钮,用Jquery写$(document).ready(function(){$("#upfile").uploadify({里面上传的文件夹为'folder':'../../images',然后还有设置回传onComplete:function(){document.getElementById("img").src="../../images/"+resp_e+".jpg";}

ASP.NET利用.FileUpload上传并将名称保存到数据库,我要具体的代码?

放一个fileupload控件,另外放一个button按钮,控制上传,在button的click事件中写:

if(fileupload.ha_ile)//判断是否存在文件{stringFilePath=Server.M_ath(/UploadFile/)

;//获取图像存的路径stringExtension=Path.GetExtension(fileupload.PostedFile.FileName)

;//获取文件的类型if(extension!=.jpg

)//判断是不是jpg格式,需要其他格式多加几个或者用字符处理方式都行return;stringNewFilePath=DateTime.Now.ToString(yyyyMMddHHmmss)+Extension;//重命名,也可以用原有的名字fileupload.SaveAs(FilePath+NewFilePath)

;//存到对应路径stringImgPath=/UploadFile/+NewFilePath;//获取上传好的的路径//将字符串存入数据库对应的字段即可}

ASP.NET生成静态页面?

1.利用如Dw这样的工具生成html格式的模板,在需要添加格式的地方加入特殊标记(如$htmlformat$),动态生成文件时利用代码读取此模板,然后获得前台输入的内容,添加到此模板的标记位置中,生成新文件名后写入磁盘,写入后再向数据库中写入相关数据。2.使用后台代码硬编码Html文件,可以使用HtmlTextWriter类来写html文件。优点1.可以建立非常复杂的页面,利用包含js文件的方法,在js文件内加入document.write()方法可以在所有页面内加入如页面头,广告等内容。2.静态html文件利用MSWindows2000的IndexServer可以建立全文搜索引擎,利用asp.net可以以DataTable的方式得到搜索结果。而Win2000的Index服务无法查找xml文件的内容。如果包括了数据库搜索与Index索引双重查找,那么此搜索功能将非常强大。3.节省服务器的负荷,请求一个静态的html文件比一个aspx文件服务器资源节省许多。缺点思路二:如果用硬编码的方式,工作量非常大,需要非常多的html代码。调试困难。而且使用硬编码生成的html样式无法修改,如果网站更换样式,那么必须得重新编码,给后期带来巨大的工作量。因此这里采用的是_种思路示列代码1.定义(template.htm)html模板页面

2.asp.net代码://---------------------读html模板页面到stringbuilder对象里----stringformat=newstring;//定义和htmlyem标记数目一致的数组StringBuilderhtmltext=newStringBuilder();try{using(StreamReadersr=newStreamReader("存放模板页面的路径和页面名")){Stringline;while((line=sr.ReadLine())!=null){htmltext._end(line);}sr.Close();}}catch{Resp_e.Write("");}//---------------------给标记数组赋值------------format="background="bg.jpg"";//背景format="#990099";//字体颜色format="150px";//字体大小format="";//文字说明//----------替换htm里的标记为你想加的内容for(inti=0;i

如何发布asp.net的网站(用IIS发布)

按照如下步骤操作:1、计算机必须安装IIS。

2、在IIS中新建网站,如果想使用80端口,就停用默认网站。

3、发布asp.net中的网站,生成dll文件。

4、打开IIS,右键“默认网站”-“添加虚拟目录”-“别名”-“指向目标文件(刚才发布的工程)”-“权限(除了控制都选上)”-“完成”。

5、访问网站,提示404错误。在IIS管理器中检查“web服务扩展”,发现未启用“Asp.Net”和“Internet数据连接器”,启用之。

6、访问网站,提示有程序集未找到,仔细看错误信息,发现网站使用了Ajax和Excel编程支持。对策,下载并安装对应软件包。

7、访问网站,提示数据库连接失败,打开Sqlserver2005“外围应用配置器”,选择“服务和连接的外围应用配置器”,钩选“Database Engine/远程连接”下的“同时使用TCP/IP和name pipes”,然后重启数据库服务。8、如果浏览出现HTTP 错误 401.1 - 未经授权:访问由于凭据无效被拒绝。那么如下操作即可: ①检查你的访问权限是否开启匿名访问是否用的是“iusr_你的主机名” 的帐户(这些是IIS的默认位置,要在我的电脑—管理—用户中启用这个账户)

asp.net如何设置网站首页asp网页怎么打开

asp.net如何设置主页

你在VisualStudio。例如,如果您想将首页设置为a.aspx,请右键单击a.aspx页面并将其设置为起始页。那是头版。

asp.net如何实现框架?

在一个页面中设置右边的框架点击左边框架的查询按钮,加入javascript代码:parent.document.getElementById("Right").src="123.aspx?"+parameters;

asp.net中怎么用C#语言创建用户登录和注册页面?

注册页面和登录页面是普通的页面开发。一般来说,如果密码需要加密存储,那么先创建一个注册页面。将输入的用户名和密码(加密过的)存储到数据库中的用户表中。

然后建一个登录页面,设这个页面是当前启动页面,然后输入用户名和密码,确认正确后跳转另外的页面。

如果密码不需要加密存储,那么可以直接把用户名和密码填入数据库中。登陆页面直接读取,比较就行。基本的页面创建,请参考ASP.NETC#教程,很简单,无非就是lable,textbox,button。看了就会!祝你好运啊!

ASP.NET如何让页面部分刷新

可以使用Timer控件,也就是时间控件。具体的方法如下:

1.在工具箱AJAXExtensi_中,找到并添加Timer控件

2.在Timer控件的代码之前。添加:

构建ASP.NET网站十大必备工具

 构建ASP NET网站十大必备工具

 _近使用ASP NET为公司构建了一个简单的公共网站(该网站的地址) 在这个过程中 我们使用了数量很多的免费工具 如果把构建ASP NET网站的必备工具总结一下 将会是一件十分有趣的事情 这些工具既支持ASP NET Web Forms又支持ASP NET MVC

 性能工具

 读了两本关于网站的前端性能的书(这两本_的图书分别是 《High Performance Web Sites》 和 《Even Faster Web Sites》 作者是Steve Souders)以后 我对网站的前端性能十分敏感 根据Steve Souders的性能黄金法则

 “首先应该对前端性能进行优化 终端用户的响应时间有 %或更多花费在这方面了 ”你可以使用下面这些工具来减少ASP NET应用程序使用的图像的尺寸 以及JavaScript文件 CSS文件的体积

  Sprite and Image Optimization Framework

 在A List Apart的一篇文章中(这篇文章的题目是 CSS sprites Image Slicing’s Kiss of Death 具体可以参考) _提到了CSS sprites 当你使用sprites的时候 你需要把一个网站使用的多个图像合并成为一个单一的图像 然后 在一个Web页面中 使用CSS trickery来显示特定的“子图像”

 sprites的主要优势是 显示一个Web页面的时候 它可以有效地减少请求的次数 请求一个大图像比请求多个小图像快得多 一般来说 通过网线传输的资源(图像 JavaScript文件 CSS文件)越多 你的网站就越慢

 但是 大多数人都不愿意使用sprites 因为使用sprites需要做很多的工作 你必须要合并所有的图像 然后编写合适的CSS规则来显示子 图像 微软的 Sprite and Image Optimization Framework 可以让我们省去这些繁琐的工作 这个框架可以自动地为你合并图像 此外 这个框架还包含一个ASP NET Web Forms control 和一个ASP NET MVC helper 它们可以让显示子图像变得更加容易 你可以从CodePlex下载 Sprite and Image Optimization Framework

 Sprite and Image Optimization Framework是 Man McClean 编写的 在微软 他的办公室和我的办公室紧挨着 Man是一个十分聪明的人 他是加拿大的实习生 当他构建这个框架的时候 我们一起讨论了那个框 架 (据我所知 他还在继续开发这个框架 )

 Man给这个框架添加了一些_的功能 例如 Sprite and Image Optimization Framework支持“image inlining” 当你使用“image inlining”的时候 真正的图像被存储在CSS文件中 这是一个“image inlining”的例子

 

Home_StephenWalther_ *** all jpg ? { ? ? width: px; ? height: px; ? background:?url(data:image/png;base iVBORw KGgoAAAANSUhEUgAAAEsAAABkCAIAAABB lpeAAAAB ? Gd_UEAALGOfPtRkwAAACBj_JNAACHDwAAjA AAP SAACBQAAAfXkAAOmLAAA QAAGcxzPIV AAAKL ? s+zNfREAAAAASUVORK CYII=)?no repeat? %? %; ? ? }?

 真正的图像(在这个例子中 是一个显示在Superexpert 网站主页上的)被存储在这个CSS文件中 如果你浏览一下 Superexpert 网站 你会发现几乎没有几个独立的图像可以被下载 在下面这张截图中 所有带红框的图像都是使用CSS sprites的

 

 不幸的是 使用 Sprite and Image Optimization Framework 的时候 有一些“陷阱”需要注意一下 为了绕开这些“陷阱” 还有一些周边的工作需要做 在我以后的文章中 我会详细讲述这些“陷阱”都是什么 以及如何 绕开这些“陷阱”

  Microsoft Ajax Minifier

 无论何时 你都应该通过“far future header”来合并 _小化(minify) 压缩和缓存所有的JavaScript文件和CSS文件 Microsoft Ajax Minifier可以让_小化JavaScript文件和CSS文件变得更加容易

 请不要把_小化和压缩搞混了 这两个工作你都需要做 根据Souders的观点 在你压缩了一个JavaScript文件以后 你还可以通过_小化来减少 %(平均)的体积

 当你_小化一个JavaScript文件 或者一个CSS文件的时候 你可以使用各种技巧在压缩那个文件以前尽可能地减少那个文件的尺寸 例如 你 可以通过用短的JavaScript变量名替换长的JavaScript变量名的方式 和移除非必需的空白和注释的方式来_小化一个 JavaScript 你可以通过同样的方式来_小化CSS文件 例如 用短的color名(#fff)替换长的color名(#fffff)

 Microsoft Ajax Minifier是微软的员工 Ron Logan 开发的 在内部 几个大型的微软网站都使用了这个工具 在ASP NET团队中 我们也使用这个工具 我认为Ron可以把这个工具发布到CodePlex 上 让_上的所有人都可以使用这个_的工具 你可以从ASP NET Ajax站点下载这个工具

 这个工具的文档可以参考

 我为Microsoft Ajax Minifier创建了一个安装程序 当创建那个安装程序的时候 我还创建了一个Visual Studio生成任务 当你在Visual Studio中自动地进行生成的时候 它可以让_小化JavaScript文件和CSS文件变得更加容易 你可以通过《Ajax Minifier Quick Start》来学习如何配制这个生成任务 (关于《Ajax Minifier Quick Start》 具体可以参考)

  ySlow

 ySlow这个工具是Yahoo提供的 它是一个免费的Firefox扩展 它可以让你测试你的网站的前端

 ySlow的

 这是“Superexpert ”网站当前的测试结果

 

 “Superexpert ”网站的总体得分是“B”(不是很_ 但是也不错了) ySlow这个工具并不是尽善尽美的 例如 虽然 Superexpert 网站使用了支JavaScript库(例如 jQuery)的Microsoft Ajax Content Delivery Neork(关于Microsoft Ajax Content Delivery Neork 具体可以参考) 但是还是因为没有使用Content Delivery Neork而得到了“F”

 正常运行时间

 当一个网站发布以后 你肯定希望你的网站不会遇到任何问题 一直处在正常运行状态之中 现在 我使用下面这些工具来监控“Superexpert ”网站 确保它一直处在正常运行状态之中

  ELMAH

 ELMAH 是 Error Logging Modules and Handlers for ASP NET 的缩写 ELMAH可以让你记录下你的网站发生的任何一个错误 在将来 你可以重新检查这些错误 你可以从ELMAH项目的官方网站免费下载ELMAH

 ELMAH既支持ASP NET Web Forms 又支持 ASP NET MVC 你可以对ELMAH进行配置来存储各种不同的错误(XML文件 事件日志 Access数据库 SQL数据库 Oracle数据库 或者计算机 RAM )你还可以让ELMAH在错误发生的时候 把错误信息email给你

 在默认情况下 在一个已经安装ELMAH的网站中 你可以通过请求的elmah axd页面的方式来访问ELMAH 这是“Superexpert ”网站的elmah页面的外观(这个页面是密码保护的 因为在一个错误信息中 可能会泄露出一些应该保密的信息 )

 

 如果你点击某个错误信息 你可以看到原始的ASP NET的黄屏错误信息(虽然这个错误信息永远不会显示给真正的用户)

 我使用全新的ASP NET软件包管理器 NuGet(过去叫做NuPack)来安装ELMAH 关于NuGet 你可以参考Scott Guthrie的博客 你可以从CodePlex下载 NuGet

  Pingdom

 我使用Pingdom来验证Superexpert 网站是否总是处在正常运行状态之中 你可以通过浏览“Pingdom ”的方式来注册Pingdom 你可以使用Pingdom来免费监控一个网站

 在Pingdom网站上 你可以配置ping你的网站的_率 我每 分钟验证一次Superexpert 网站是否总是处在正常运行状态之中 我使用Pingdom服务来验证它是否可以从那个网站的主页上检索到字符串“Contact Us”

 

 如果你的网站宕机了 你可以对Pingdom进行配置 让它通过email Twitter SMS 或 iPhone来发送一个警报 我使用这个Pingdom的iPhone应用程序

 

  Host Tracker

 如果你的网站宕机了 你需要一些方式来判断这是本地网络的问题 还是对每个人来说 你的网站都宕机了 我使用一个叫做“Host Tracker ”的网站来检查一个网站宕机的程度

 这是“Superexpert ”网站从_各地都可以ping通的时候 Host Tracker显示的结果

 

 注意 Host Tracker从 个地点(其中包括 Roubaix France and Scranton PA等)来ping “Superexpert ”网站

 调试

 我这里提到的“调试”的意义十分广泛 当构建一个网站的时候 我使用下面这些工具来验证我并没有犯错误

  HTML Spell Checker

 为什么Visual Studio没有内置一个拼写检查器?不知道——我觉得这有点不可思议 但是 幸运的是 ASP NET团队的前成员编写了一个免费的拼写检查器 你可以在ASP NET页面上使用这个拼写检查器

 我发现一个拼写检查器是必不可少的 认为你自己的拼写能力_是_的 只是自欺欺人而已 当我真正地运行拼写检查工具 发现我的所有拼写错误的时候 我恨不得找个地缝钻进去

 把HTML Spell Checker扩展添加到Visual Studio中的_快方法是在Visual Studio中选择“Tools”菜单项 然后点击“Extension Manager” 点击“Online Gallery” 然后索搜“HTML Spell Checker”

 

  IIS SEO Toolkit

 如果人们无法通过Google找到你的网站 那么还不如不构建这个网站 微软提供了一个_的IIS扩展 叫做“IIS Search Engine Optimization Toolkit ”(关于IIS Search Engine Optimization Toolkit 具体可以参考) 你可以使用它来检测出可能会影响页面排名的问题 你也可以使用它快速地为你的网站创建一个sitemap 你可以把这个sitemap提交给Google或Bing 你甚至可以为一个ASP NET MVC网站生成一个sitemap

 这是“Superexpert ”网站的分析报告的概述

 

 注意 “Sueprexpert ”网站存在很多的问题 例如 有 个页面的超链接已经失效了 你可以进一步查看这些问题的详细信息 找出这些问题发生的地点和具体的页面

  LinqPad

 如果你的ASP NET网站需要访问一个数据库 那么你应该使用LINQ to Entities这个实体框架 使用LINQ 会把一些用C#编写的神奇的查询转换成SQL查询 如果你在编写LINQ查询的时候不小心谨慎一些的话 你 很可能会在无意之间构建出一个性能十分糟糕的网站

 LinqPad(LinqPad的官方站点)是一个免费的工具 它可以让你实验你的LINQ查询 它甚至支持Microsoft SQL CE 和 Azure

 你可以使用LinqPad来执行一个LINQ to Entities查询 然后看看结果 你也可以使用它来查看对那个数据库执行的SQL语句

 

  NET Reflector

 我每天都使用 NET Reflector NET Reflector这个工具可以让你把一个程序集反汇编成C#或VB NET代码 当你没有真正的源代码的时候 你可以使用 NET Reflector来查看一个程序集的“源代码” 你可以从Redgate的网站下载 NET Reflector的免费版本

 我主要使用 NET Reflector来帮助我搞清楚代码在内部是如何工作的 例如 为了更好的理解MVC Image helper是如何工作的 我使用 NET Reflector对the Sprite and Image Optimization Framework进行了反汇编 这是Image helper类的一部分反汇编代码

 

 总结

lishixinzhi/Article/program/net/201311/14298

ASP.NET设计控件净化网站语言

  一 概述

 考虑一下这种情形 你为一个Web网站写了一个应用程序 它的功能是接受用户的输入并将输入内容_保存 例如保存到数据库 另外还要在网站上显示出用户输入的内容 例如论坛就是一个很典型的例子

 如果用户来源很杂 必须考虑如何防止用户提交和张贴攻击性(或者_的 庸俗的)的内容 可能的解决方案包括

 ⑴ 将用户群限制到一个封闭的用户团体 即要求用户使用程序功能之前必须先注册/登录 这样 由于每次提交的内容都可以追查到提交者 用户破坏网站规则的可能性就小了很多 如果有用户做出了不应该做的事 你就可以核实用户身份 予以相应的处理

 ⑵ 在网站上发布用户提交的内容之前 先由管理员审阅 很多时候 由于人力资源有限 这个办法不一定行得通

 ⑶ 禁止用户提交攻击性内容 这是_理想的解决办法 把问题解决在起源 但具体应该怎么实现呢?

 本文介绍的方案以一个复合控件为基础 利用一个XML文件来定义攻击性词语 我们将用VB NET编写这个复合控件 用普通的文本编辑器和命令行编译器(vbc)完成整个工程的构建

 在正式编写控件之前 首先我们来简单地回顾一下ASP NET中控件的概念 本文出现的所有控件都是服务器控件 它们在服务器上运行 将HTML代码发送到客户端 要理解控件的分类 可以从控件是否嵌入到Web表单页面(因而采用按需编译方式)或预先编译的角度来观察 微软定义了下列ASP NET服务器控件 HTML服务器控件 Web服务器控件 验证控件 用户控件

 前三种控件读者应该已经比较熟悉了 对于开发者来说 它们是_简单的控件类型 在ASP NET中已经由微软为我们编写好 用户控件则有所不同 用户控件是 包装 成 ascx页面形式的 aspx页面 其他 aspx页面可以通过注册和实例化来调用用户控件的功能 这是一种被寄予厚望的服务器端控件 对于ASP/ASP NET开发者来说 它代表着一大进步 特别地 现在编写控件的语言已经全面支持面向对象技术

 ASP NET用户控件由一个或多个服务器控件 静态HTML元素构成 可以包含额外的代码 每个用户控件封装一组特定的功能 用户控件可以通过简单地扩展现有服务器控件(控件组)得到 例如 带有旋转功能的图形控件 在文本框中保存日期的日历控件

  二 开发复合控件

 控件要检查用户提交的内容是否包含 攻击性 词语 攻击性词语由一个XML文件定义 XML文件的结构如下

<?xml_ersion=? encoding=GB ><words><word>词语一</word><word>词语二</word></words>

 本文的复合控件(Composite)包含三个ASP NET服务器控件 一个Textbox控件 一个Label控件 还有一个Button控件 当用户点击Button控件 Composite检查用户提交的文本是否包含了XML文件中_的词语(XML文件的默认名字是bad_words xml 通过一个自定义属性定义) 并抛出一个自定义事件 另外 Composite控件还将它的Label子控件的一个Text属性显露成_属性

 复合控件可以有选择地将子控件显露成属性 或者有选择地将子控件的属性和事件作为_属性和事件显露出来 当复合控件整合来自子控件的属性时 它通常只是简单地委托子控件执行操作 如下面的例子所示

// 将操作委托给标签对象 标签对象是一个// System Web UI WebControls Label的实例Public Property Text() As StringGetEnsureChildControls()Return label TextEnd GetSetEnsureChildControls()label Text=_alueEnd SetEnd Property

 我们需要一个文本输入框让用户输入内容 一个按钮来提交表单 还要一个向用户反馈信息的文本标签 下面我们来看看Web表单的代码 复合控件就是在这里实例化的

posite aspx

<%@ page language=_b debug=false trace=false %><%@ Register TagPrefix=Custom Namespace=CustomControls Assembly=CustomControls %><><script language=_B runat=server>Private Sub CheckText(sender As Object e As CheckEventArgs)If e Match=false ThenComposite Text=<h >发布内容请遵守本站规则!不得发布攻击性言辞!</h > ElseComposite Text=你提交的内容已通过检查! End IfEnd Sub </script>

<body>

<h >语言净化控件实例</h ><br><form runat=server><Custom:Composite id=Composite OnCheck=CheckText filename=bad_words xml runat=server/></form></body></>?

 上面的代码首先注册_的复合控件 我们将把控件的代码编译成一个 dll文件 放入应用的bin目录 这是ASP NET首先搜索的位置 在Web表单构成的用户界面中 我们实例化了自定义控件 同时_了

 ⑴ 当控件抛出OnCheck事件 执行一个本地的子过程CheckText 我们把复合控件的标签的文本通过一个公用属性显露出来 标签的内容由OnCheck事件句柄设置的另一个公用属性决定

 ⑵ 定义攻击性词语的XML文件的名字

 ⑶ 另外 我们还定义了一个由复合控件调用的CheckText子过程

 现在来看复合控件本身 复合控件有两个类 用两个独立的VB源文件实现 分别是posite_b和checkevent_b

posite_b

Imports SystemImports System WebImports System Web UIImports System Web UI WebControlsImports System XmlImports System Collecti_

Namespace CustomControlsPublic Class CompositeInherits ControlImplements INamingContainerPrivate _filename As String=bad_words xml Private label As LabelPrivate box As TextBox

Public Property filename() As StringGetReturn _filenameEnd GetSet_filename=_alueEnd SetEnd Property

以用户提交的文本内容为输入参数 如果用户提交的内容包含攻击性言辞 则返回修改后的版本 否则 直接返回原始的文本 Public Function CheckString(InputString as String) as stringDim alWordList As new ArrayListdim xmlDocPath as string=m_athsecure( bad_words xml )dim xmlReader as XmlTextreader=new xmlTextReader(xmlDocPath)dim element as stringdim output as stringdim asterisks as string=*************************

将定义攻击性言辞的xml文件内容读入到一个ArrayLishile (xmlReader Read())if xmlReader NodeType=xmlNodeType Text thenalWordList Add(xmlReader_alue)end ifend whilexmlReader Close()

检查用户提交的文本内容 将攻击性言辞替换为适当数量的星号For Each element in alWordListInputString=InputString Replace(element asterisks substring( (element length)))Next

Return InputString

End Function

Public Property Text() As StringGet 该方法首先检查ChildControlsCreated属性的当前值 如果该值是false 则调用CreateChildControls方法EnsureChildControls()Return label TextEnd GetSetEnsureChildControls()label Text=_alueEnd SetEnd Property

Public Event Check As CheckEventHandler

Protected Overridable Sub OnCheck(ce As CheckEventArgs)RaiseEvent Check(Me ce)End Sub

创建Composite控件的子控件Protected Overrides Sub CreateChildControls()

Controls Add(New LiteralControl( <h >请在下面输入文字内容: ))

文本输入框Dim box As New Textbox()box Text=Controls Add(box )

Controls Add(New LiteralControl( </h > ))

按钮Dim button As New Button()button Text=提交 Controls Add(New LiteralControl( <br> ))Controls Add(button )

将一个事件句柄加入新创建的按钮对象AddHandler button Click AddressOf Me ButtonClicked

Controls Add(New LiteralControl( <br><br> ))label=New Label()label Height=Unit Pixel( )label Width=Unit Pixel( )label Text=Controls Add(label)End Sub

Protected Overrides Sub OnPreRender(e As EventArgs)CType(Controls( ) TextBox) Text=End Sub

Private Sub ButtonClicked(sender As [Object] e As EventArgs)OnCheck(New CheckEventArgs(CType(Controls( ) TextBox) Text CheckString(CType(Controls( ) TextBox) Text)))End SubEnd ClassEnd Namespace

 上面代码的主要任务是

 ⑴ 首先导入必要的名称空间 声明当前类所属的名称空间

 ⑵ 接下来定义Composite的主体 Composite从_基本的Control类继承 另外还要实现INamingContainer接口 INamingContainer接口允许Composite控件将事件转发到它的Button子控件

 ⑶ 用CreateChildControls方法(而不是OnInit或构造函数)创建子控件

 ⑷ Composite控件没有显露出Button子控件的Click事件 相反 它处理了Click事件 并抛出自定义事件Check

 ⑸ Composite控件显露了下列公用属性 Text 即Label子控件的Text属性值 FileName 允许获取和设置定义攻击性词语的XML文件的名字

 ⑹ 主要的检查功能由CheckString方法实现 它的输入参数是一个文本字符串 CheckString方法从XML文件读取禁用的词语 放入一个数组列表(ArrayList) 然后检查_的字符串是否包含禁用的词语 所有 攻击性 的词语将被适当数量的 * 替代

 ⑺ OnPreRender清除文本框子控件的文本

 ⑻ 当用户点击按钮 ButtonClicked开始执行 ButtonClicked调用onCheck子过程 传入适当的参数(一个新建的CheckEventArgs对象 创建CheckEventArgs对象的参数是检查前和检查后的文本) OnCheck随后触发一个事件 该事件将由 aspx页面中的代码处理

CheckEvent_b

包含定制事件数据类CheckEventArgs的代码 另外还定义了Check事件的事件句柄Imports SystemNamespace CustomControlsPublic Class CheckEventArgsInherits EventArgsPrivate _match As Boolean=False

Public Sub New(string As String string as String)If string=string Then_match=TrueEnd IfEnd Sub

Public ReadOnly Property Match() As BooleanGetReturn _matchEnd GetEnd PropertyEnd Class

Public Delegate Sub CheckEventHandler(sender As Object ce As CheckEventArgs)End Namespace

 CheckEventArgs的构造函数是两个字符串 根据字符串的值设置相应的匹配标记_match 另外 上面的代码还定义了CheckEventHandler事件句柄

 编写好上面的代码后 如果你没有安装IDE 用下面的命令执行编译即可

lishixinzhi/Article/program/net/201311/15751

好了,今天关于“asp.net网站”的话题就讲到这里了。希望大家能够通过我的讲解对“asp.net网站”有更全面、深入的了解,并且能够在今后的学习中更好地运用所学知识。

展开剩余内容

分享到:

猜你喜欢

  • b2b网站策划书_b2b策划案

    b2b网站策划书_b2b策划案大家好,今天我来给大家讲解一下关于b2b网站策划书的问题。为了让大家更好地理解这个问题,我将相关资料进行了整理,现在就让我们一起来看看吧。文章目录...

    2024-10-22 企业 网站
  • 浙江高端网站_浙江高端网站有哪些

    浙江高端网站_浙江高端网站有哪些好久不见了,今天我想和大家探讨一下关于“浙江高端网站”的话题。如果你对这个领域还不太了解,那么这篇文章就是为你准备的,让我们一看看吧。文章目录列...

    2024-10-22 网站 浙江
  • 做酒的网站_做酒的网站有哪些

    做酒的网站_做酒的网站有哪些希望我能够回答您有关做酒的网站的问题。我将根据我的知识库和研究成果回答您的问题。文章目录列表:1.酒仙网CEO郝鸿峰的电商百亿梦想2.有没有关于介绍...

    2024-10-22 中国 酒类 酒仙 网站
  • 网站技术规划_网站技术规划怎么写

    网站技术规划_网站技术规划怎么写希望我能够为您提供一些与网站技术规划相关的信息和建议。如果您有任何疑问或需要更深入的解释,请告诉我。文章目录列表:1.博客网站设计策划书2.怎样...

    2024-10-22 功能 技术 设计 网站
热门标签