代码改变世界

SharePoint And Ajax Technology(3):SharePoint集成Ajax

2008-07-22 16:22 努力学习的小熊 阅读(...) 评论(...) 编辑 收藏

SharePoint And Ajax Technology3):SharePoint集成Ajax

网上关于在SharePoint中集成Ajax的文章也有不少了,本文算是我学习后的一个记录J

SharePoint中集成Ajax的功能并不复杂,只需要8个步骤即可。第一个是安装Ajax的支持,剩下七个则是修改需要提供Ajax支持的网站的web.config文件即可。

1.安装ASP.NET AJAX Extensions 1.0

2.打开SharePoint网站集所在的WebApplication的目录。例如:C:\inetpub\wwwroot\wss\virtualdirectories\80。并打开目录中的web.config文件。这里我推荐使用VS来编辑这个文件,理由是不容易出错,如果设置有错误则会有红色下划线的职能提示,而且有自动缩进,保证格式。在记事本里面却不能保证这些。

3.在<configSections>标记中添加如下的<sectionGroup>元素。

<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
 <
sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
     <
section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
     <
sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
     <
section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="Everywhere" />
     <
section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication" />
     <
section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication" />
   </
sectionGroup>
 </
sectionGroup>
</
sectionGroup>

4.在<system.web>/<pages>标记中添加<controls>部分。

<controls>
   <
add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</
controls>

5.在<compilation>标记的<assemblies>元素中添加如下标记。

<add assembly="System.Web.Extensions, Version=1.0.61025.0,Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>

6.在<httpHandlers>部分的最后注册HTTP Handlers

<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<
add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<
add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>

7.在<httpModules>部分中所有module之后添加注册下面的HTTP Module

<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>

8.在<SharePoint>/<SafeControls>中为System.Web.Extensions组件添加SafeControl

<SafeControl Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Namespace="System.Web.UI" TypeName="*" Safe="True" />

9.最后,在<configuration>标记内的最低部(仅在</configuration>之前),添加如下内容。

<system.web.extensions>
   <
scripting>
     <
webServices>
     
<!-- Uncomment this line to enable the authentication service. Include requireSSL="true" if appropriate. -->
     <!--
       <authenticationService enabled="true" requireSSL = "true|false"/>
     -->
     <!-- Uncomment these lines to enable the profile service. To allow profile properties to be retrieved and modified in ASP.NET AJAX applications, you need to add each property name to the readAccessProperties and writeAccessProperties attributes. -->
     <!--
     <profileService enabled="true"
                     readAccessProperties="propertyname1,propertyname2"
                     writeAccessProperties="propertyname1,propertyname2" />
     -->
     
</webServices>
     
<!--
     <scriptResourceHandler enableCompression="true" enableCaching="true" />
     -->
   
</scripting>
   </
system.web.extensions>
   <
system.webServer>
   <
validation validateIntegratedModeConfiguration="false"/>
   <
modules>
     <
add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>d
   
</modules>
   <
handlers>
     <
remove name="WebServiceHandlerFactory-Integrated" />
     <
add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode"
          
type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
     <
add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
     <
add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
   </
handlers>
</
system.webServer>

完成。

 

参考文章:

http://www.telerik.com/help/aspnet-ajax/moss-install-aspnet-ajax.html

这个公司网站卖很多控件,呵呵,有支持MOSSRadEditor,文档里面也有关于如何使SharePoint集成Ajax功能的说明。

    或者大家可以参考Microsoft SharePoint Team Blog的文章Integrating ASP.NET AJAX with SharePoint,里面还提供了如何添加ScriptManager和一个使用UpdatePanel的小例子。