ASP教程之List增加Item时, 怎样往判别某个字段, ...
ASP脚本是采用明文(plaintext)方式来编写的。数据|反复SharePoint中怎样使得用户不克不及经由过程对WSS的List中增加或修正使得某个指定字段存在反复数据。并必要尽量满意以下需求:1)但愿办理计划对照复杂,而且易于部署(客户但愿在30分钟内能完成部署)
2)但愿在部署过程当中不必要从头编译任何工程
3)有必定的通用性,不克不及针对一个特定的List开辟一个组件
---------------------------------------------------------------
今朝研讨的了局:
研讨了局及办理计划(以新建纪录为例)
==================
体系完成思绪
=======
因为所触及的步骤扳连修正WSS默许的模板和JavaScript代码,以是请在测试情况中完成下述步骤并备份相干信息。
1.当用户新建纪录、提交表单时,WSS会起首挪用ClickOnce()函数(请在新建纪录页面点击右键,检察HTML源文件),但是,ClickOnce()其实不存在NewForm.aspx文件中,而是在响应List模板的SCHEMA.XML中(如,我们利用CustomizedList,List模板的路径是C:ProgramFilesCommonFilesMicrosoftSharedwebserverextensions60TEMPLATE1033STSLISTSCUSTLIST)且一切WSSList城市挪用OWS.JS文件,援用个中的JavaScript。表单会提交到/_vti_bin/owssvr.dll上,终极拔出数据库。这是默许的表单提交历程。
2.为了在时代到场定制的代码,反省是不是会发生反复数据。我们能够接纳以下几种通信体例:
a)在SCHEMA.XML中拦阻ClickOnce()函数,利用Microsoft.XMLHTTP工具向Server真个ASPX页发送POST哀求,并吸收Server真个回传数据,SCHEMA.XML的感化域是一个特定的List。在本样例中,我们选用这类体例
b)因为在提交表单的流程中,SCHEMA.XML中界说的ClickOnce()函数终极会挪用OWS.JS中的程序段,固然,我们能够在OWS.JS的有关函数中拦阻默许的提交换程,并向Server端发送哀求,可是,我们不保举这类体例,由于修正OWS.JS大概影响到多个List。只要在特定的前提下,才利用这类全局的体例,而且但愿您举行周全的测试。
c)前两种体例是在客户端向服务端发送哀求,举行考证,假如必要全体PostBack回服务器端举行认证,请利用FrontPage2003,翻开NewForm.aspx,在输出WebPart上点右键,并选择“CustomizedSharePointListForm”菜单项,将输出WebPart转换为表格形式,以下所示:
此时我们可使用传统ASP.NET窗体的体例,在下面增加自界说的输出栏位和提交按钮,并能够提交到特定的背景页面。这类体例必要对每一个List的NewForm.ASPX分离处置。
3.服务器端是一个ASP.NET页面,它将吸收ListID(List的Guid)和FieldValue(必要字段添补值),ASP.NET页面会读取一个XML设置文件,并比对个中的ListID,用以决意是不是必要对本List举行考证(针对多个List的通用办理计划)。假如必要考证,则从XML设置中读取必要考证的字段称号等信息,并举行查询。不管乐成与否ASP.NET页面会将前往信息回写到客户端。
4.客户真个Microsoft.XMLHTTP工具取得回写的字符串落后行需要的剖析,并决意响应的流程。
详细完成步骤
=======
1.本样例中将利用CustomizedList模板为例,在C:ProgramFilesCommonFilesMicrosoftSharedwebserverextensions60TEMPLATE1033STSLISTS目次中复制CUSTLIST目次,并定名位LIANGMING
2.翻开下层目次下的XML目次(C:ProgramFilesCommonFilesMicrosoftSharedwebserverextensions60TEMPLATE1033STSXML)中的ONET.XML,并找到<ListTemplates>片断,拔出以下黑斜体部分,将Type设为小于1000,且和以后List的Type字段没有反复的数值,并坚持Name域的信息和复制的目次称号不异。
<ListTemplates>
<ListTemplateName="custlist"DisplayName="CustomList"Type="100"BaseType="0"OnQuickLaunch="TRUE"SecurityBits="11"Description="Createacustomlistwhenyouwanttospecifyyourowncolumns.ThelistopensasaWebpageandletsyouaddoredititemsoneatatime."Image="/_layouts/images/itgen.gif"></ListTemplate>
<ListTemplateName="LIANGMING"DisplayName="LiangMingCustomizedList"Type="500"BaseType="0"OnQuickLaunch="TRUE"SecurityBits="11"Description="LIANGMING"Image="/_layouts/images/itgen.gif"></ListTemplate>
3.在命令窗口中挪用IISReset,重启IIS服务
4.在新建List页面(任何对List模板的修正,必需新建一个List才能够看到了局)我们会发明有个LIANGMING的List模板
5.翻开List模板目次下的SCHEMA.XML,增加以下代码:
functionCheckField()
{
varfldValue;
for(i=0;i<frm.form.elements.length;i++)
{
//查找特定字段的值(必要反省的值),此处利用title属性,可依据实践情形修正
if(frm.form.elements.title=="EmployeeID"){
fldValue=frm.form.elements.value;
break;
}
}
//默许List的GUID寄存在Hidden的onetidIOHidden字段中
varlstId=document.getElementById("onetidIOHidden");
//利用Microsoft.XMLHTTP向服务真个页面发送哀求
varxmlhttp=newActiveXObject("Microsoft.XMLHTTP");
xmlhttp.Open("POST","/_layouts/CheckField/DoCheck.aspx?ListID="+lstId.value+"&FieldValue="+fldValue,false);
xmlhttp.send();
//猎取前往信息
varresp=newString(xmlhttp.responseText);
//假如前往信息包括暗示毛病的标签则改动程序流程
if(resp.indexOf("</ERROR>")>0)
returnfal</p>写软件都是想的时间比写的时间要长的.如果反过来了就得看看是什么原因了.另外大家可以回去问问公司里的小MM.(一般企业里,跟你们交付软件接触得最多的是她们) 不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍 在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。 代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。 在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。 ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。 接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。 如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助: 完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。 他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
页:
[1]