创建MOSS2007自定义字段类型实例
2007-03-15 12:20
239 查看
MOSS2007的自定义字段类型是一个非常有用的功能,但在网上相关的实例介绍很少,所以下面就
一步一步地介绍怎样来创建一个自定义字段类型,我们的目标是:实现一个具有可配置性的下拉列表框,
其选择项目是读取XML文件获得。
实现一个自定义字段类型主要需要完成三种文件的编制:1)定义类型的XML文件;2)定义展现模板
*.ascx文件;3)定义后台代码程序集。
这里因为我们想要实现一个可读取XML文件的下拉列表框,所以我们首先还要定义一个配置文件
SelectItemFromXMLConfig.xml。
XML代码如下:
<?xml version="1.0" encoding="utf-8"?>
<SelectItems>
<Item>选项一</Item>
<Item>选项二</Item>
<Item>选项三</Item>
<Item>选项四</Item>
<Item>选项五</Item>
</SelectItems>
然后,我们可以打开Visual Studio2005,然后添加一个类库,如果你已经安装了扩展模板也可以直接选择
创建“Field Control”类型的项目。建议下载微软的SharePoint工具包:Windows SharePoint Services 3.0 Tools: Visual Studio 2005 Extensions.
这里我们新建一个名叫SelectItemFromXMLField的类库,其中包含两个类文件:SelectItemFromXML.Field.cs
和SelectItemFromXML.FieldControl.cs。
SelectItemFromXML.Field.cs完整代码如下:
using System;
using System.Runtime.InteropServices;
using System.Security.Permissions;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.Security;
namespace SelectItemFromXML
SelectItemFromXML.FieldControl.cs完整代码如下:
using System;
using System.Runtime.InteropServices;
using System.Web;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using System.Web.UI.WebControls;
using System.IO;
using System.Xml;
using System.Diagnostics;
namespace SelectItemFromXML
<SharePoint:RenderingTemplate ID="SelectItemFromXMLFieldControl" runat="server">
<Template>
<asp:DropDownList runat="server" ID="cboList"/>
</Template>
</SharePoint:RenderingTemplate>
值得注意的地方是:上面代码中DropDownList的ID是"cboList",这个名字曾经被后台类SelectItemFromXMLFieldControl使用
TemplateContainer.FindControl方法寻找过,所以不要写错。
OK,最后,我们可以在当前解决方案中添加一个XML文件“FLDTYPES_SelectItemFromXmlField.xml”。
代码如下:
<?xml version="1.0" encoding="utf-8"?>
<FieldTypes>
<FieldType>
<Field Name="TypeName">SelectItemFromXML</Field>
<Field Name="ParentType">Choice</Field>
<Field Name="TypeDisplayName">Select Item From XML</Field>
<Field Name="TypeShortDescription">Select Item From XML</Field>
<Field Name="UserCreatable">TRUE</Field>
<Field Name="ShowInListCreate">TRUE</Field>
<Field Name="ShowInSurveyCreate">TRUE</Field>
<Field Name="ShowInDocumentLibraryCreate">TRUE</Field>
<Field Name="ShowInColumnTemplateCreate">TRUE</Field>
<Field Name="FieldTypeClass">SelectItemFromXML.SelectItemFromXMLField,SelectItemFromXMLField, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ad167643f06d0c9c</Field>
</FieldType>
</FieldTypes>
值得注意的地方是:
1)该定义文件的文件名一定要以“FLDTYPES”开头。
2)FieldTypeClass项中的值是类的全名称和程序集的全名称,可以使用Reflector获得。
到这里,我们需要编写的所有文件都已经编写完成了,只要做简单的部署就可以了。
步骤如下:
1)把强名称编译好的SelectItemFromXMLField程序集加入到GAC。
2)把类型定义文件FLDTYPES_SelectItemFromXmlField.xml拷贝到c:\program...\12\TEMPLATE\XML目录下。
3)把模板文件SelectItemFromXMLFieldControl.ascx拷贝到c:\program...\12\TEMPLATE\CONTROLTEMPLATES目录下。
4)重启动IIS。(可以使用命令行iisreset)
5)把该控件的配置文件SelectItemFromXMLConfig.xml拷贝到C:\Windows\System32\inetsrv目录下。
值得注意的地方是:
前四步是部署自定义字段类型的一般步骤。第五步是针对这个实例的特殊步骤。你其实可以把配置文件放在你想放的任何位置,只要在前面编写SelectItemFromXMLFieldControl类的CreateChildControls方法时指定你想放的位置即可。
OK,到此自定义字段类型的过程已经结束。你可以在创建MOSS的某个列表栏时,发现一个新的类型“Select Item From XML”。选择该类型创建一个新栏后,当往该列表中添加项目时,会发现添加页面中对应新栏的输入方式是一个下拉列表框,其中的选项就是我们在XML配置文件中定义的选项了!
一步一步地介绍怎样来创建一个自定义字段类型,我们的目标是:实现一个具有可配置性的下拉列表框,
其选择项目是读取XML文件获得。
实现一个自定义字段类型主要需要完成三种文件的编制:1)定义类型的XML文件;2)定义展现模板
*.ascx文件;3)定义后台代码程序集。
这里因为我们想要实现一个可读取XML文件的下拉列表框,所以我们首先还要定义一个配置文件
SelectItemFromXMLConfig.xml。
XML代码如下:
<?xml version="1.0" encoding="utf-8"?>
<SelectItems>
<Item>选项一</Item>
<Item>选项二</Item>
<Item>选项三</Item>
<Item>选项四</Item>
<Item>选项五</Item>
</SelectItems>
然后,我们可以打开Visual Studio2005,然后添加一个类库,如果你已经安装了扩展模板也可以直接选择
创建“Field Control”类型的项目。建议下载微软的SharePoint工具包:Windows SharePoint Services 3.0 Tools: Visual Studio 2005 Extensions.
这里我们新建一个名叫SelectItemFromXMLField的类库,其中包含两个类文件:SelectItemFromXML.Field.cs
和SelectItemFromXML.FieldControl.cs。
SelectItemFromXML.Field.cs完整代码如下:
using System;
using System.Runtime.InteropServices;
using System.Security.Permissions;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.Security;
namespace SelectItemFromXML
SelectItemFromXML.FieldControl.cs完整代码如下:
using System;
using System.Runtime.InteropServices;
using System.Web;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using System.Web.UI.WebControls;
using System.IO;
using System.Xml;
using System.Diagnostics;
namespace SelectItemFromXML
<SharePoint:RenderingTemplate ID="SelectItemFromXMLFieldControl" runat="server">
<Template>
<asp:DropDownList runat="server" ID="cboList"/>
</Template>
</SharePoint:RenderingTemplate>
值得注意的地方是:上面代码中DropDownList的ID是"cboList",这个名字曾经被后台类SelectItemFromXMLFieldControl使用
TemplateContainer.FindControl方法寻找过,所以不要写错。
OK,最后,我们可以在当前解决方案中添加一个XML文件“FLDTYPES_SelectItemFromXmlField.xml”。
代码如下:
<?xml version="1.0" encoding="utf-8"?>
<FieldTypes>
<FieldType>
<Field Name="TypeName">SelectItemFromXML</Field>
<Field Name="ParentType">Choice</Field>
<Field Name="TypeDisplayName">Select Item From XML</Field>
<Field Name="TypeShortDescription">Select Item From XML</Field>
<Field Name="UserCreatable">TRUE</Field>
<Field Name="ShowInListCreate">TRUE</Field>
<Field Name="ShowInSurveyCreate">TRUE</Field>
<Field Name="ShowInDocumentLibraryCreate">TRUE</Field>
<Field Name="ShowInColumnTemplateCreate">TRUE</Field>
<Field Name="FieldTypeClass">SelectItemFromXML.SelectItemFromXMLField,SelectItemFromXMLField, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ad167643f06d0c9c</Field>
</FieldType>
</FieldTypes>
值得注意的地方是:
1)该定义文件的文件名一定要以“FLDTYPES”开头。
2)FieldTypeClass项中的值是类的全名称和程序集的全名称,可以使用Reflector获得。
到这里,我们需要编写的所有文件都已经编写完成了,只要做简单的部署就可以了。
步骤如下:
1)把强名称编译好的SelectItemFromXMLField程序集加入到GAC。
2)把类型定义文件FLDTYPES_SelectItemFromXmlField.xml拷贝到c:\program...\12\TEMPLATE\XML目录下。
3)把模板文件SelectItemFromXMLFieldControl.ascx拷贝到c:\program...\12\TEMPLATE\CONTROLTEMPLATES目录下。
4)重启动IIS。(可以使用命令行iisreset)
5)把该控件的配置文件SelectItemFromXMLConfig.xml拷贝到C:\Windows\System32\inetsrv目录下。
值得注意的地方是:
前四步是部署自定义字段类型的一般步骤。第五步是针对这个实例的特殊步骤。你其实可以把配置文件放在你想放的任何位置,只要在前面编写SelectItemFromXMLFieldControl类的CreateChildControls方法时指定你想放的位置即可。
OK,到此自定义字段类型的过程已经结束。你可以在创建MOSS的某个列表栏时,发现一个新的类型“Select Item From XML”。选择该类型创建一个新栏后,当往该列表中添加项目时,会发现添加页面中对应新栏的输入方式是一个下拉列表框,其中的选项就是我们在XML配置文件中定义的选项了!
相关文章推荐
- 推荐:“创建MOSS2007自定义字段类型实例”
- 推荐:“创建MOSS2007自定义字段类型实例”
- 创建moss自定义字段类型实例
- 创建具有属性值的MOSS2007自定义字段实例(包括步骤与源代码)
- .Net 中的反射(动态创建类型实例)
- 泛型约束where条件的使用(可以通过类型参数动态反射创建实例)
- Access sql语句创建表及字段类型
- Access sql语句创建表及字段类型(转)
- Delphi类里面的方法和类型定义不影响创建实例的大小
- oracle spatial 创建空间字段索引 创建字段索引 完善SQL语句实例
- Access sql语句创建表及字段类型
- Android 数据库创建字段时的数据类型
- SQL 2000创建表的时候设置某一字段为自动增长的类型
- Java SE 7新特性:创建泛型实例时自动类型推断
- 使用反射创建Bean、Spring中是如何根据类名配置创建Bean实例、Java提供了Class类获取类别的字段和方法,包括构造方法
- [转载].Net 中的反射(动态创建类型实例) - Part.4
- 创建自定义字段类型
- .Net 中的反射(动态创建类型实例) - Part.4
- Elasticsearch 同一索引不同类型下同名字段的映射冲突实例
- elasticsearch 字段别名(创建索引并指定索引类型的mapping)