网站商城怎么做的,遵义网上房地产查询系统,朝阳网络 网站建设,网站建设首页模板下载创建一个List Definition有多条途径#xff0c;这里由于我们要基于前面的用户自定义Content Type来创建一个List Defintion#xff0c;所以我们就需要使用到List Definition From Content Type模板。 这里先大致描述如何创建List Definition#xff0c;然后重点介绍一下Li…创建一个List Definition有多条途径这里由于我们要基于前面的用户自定义Content Type来创建一个List Defintion所以我们就需要使用到List Definition From Content Type模板。 这里先大致描述如何创建List Definition然后重点介绍一下List Definition里面的相关内容。 首先打开我们前面创建的Content Type的项目在这个项目中新添加一个Item,在模板中选择Definition From Content Type如下图 下一步采用默认设置即可点选让系统给你创建一个List Instance. 这样我们就基于我们前面创建的用户自定义ContentType创建了一个用户自定义的ListDefinition 创建好后的项目如下图 一个完整的List Definition应该包括: . Feature.xml 文件(里面有元素清单Element Manifest) .List Instance列表实例 .List Template列表模板 .功能文件夹Feature Folder (%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\FEATURES) 中的 Schema.xml 文件。 一、作为Feature的Feature.xml 里面定义了一个List Definition所需要的具备的各方面的定义内容它的Element Mainfest即元素清单中列出了这些方方面面的定义工作所涉及的描述文件所在位置下面是本例的Feature.xml的Manifest内容: Feature xmlnshttp://schemas.microsoft.com/sharepoint/ TitleMyContentType1 Feature1 DescriptionMy Content Type Feature Idf4ea6583-56a3-4328-90b2-c3b4a62afad4 ScopeWeb Properties Property KeyGloballyAvailable Valuetrue / /Properties ElementManifests ElementManifest LocationContentType1\Elements.xml / ElementManifest LocationListInstance1\Elements.xml / ElementFile LocationPicListDefinition\EditDlg.htm / ElementManifest LocationPicListDefinition\Elements.xml / ElementFile LocationPicListDefinition\FileDlg.htm / ElementFile LocationPicListDefinition\Repair.aspx / ElementFile LocationPicListDefinition\Schema.xml / ElementFile LocationPicListDefinition\Upload.aspx / /ElementManifests /Feature 可以看到这个Feature涉及到了ContentType的定义ListInstance的定义PicListDefinition的定义以及PicListDefinition所对应的Schema.xml的定义另外还包括几个用于界面定义的ASPX,这些ASPX将会在Schema.xml中引用到。 二、对于List Template ListTemplate 元素用于指向某 List definition 的定义这个定义包含在 Schema.xml 文件中你在创建List实例时就会用到这个ListTemplate而这个ListTemplate又指向了具体的某个List Definition。所以它们的关系是 List Instance--List Template---Schema.xml(定义了特定的List Definition)。因此List Template起到了承上启下的作用。 ListTemplate 元素有许多属性这些属性的详细说明请参考MSDN 这里就以本例为样本进行说明: NamePicListDefinition Type10006 BaseType1 OnQuickLaunchTRUE SecurityBits11 Sequence110 DisplayNameMyContentType1 - PicListDefinition DescriptionMy List Definition Image/_layouts/images/itdl.png DocumentTemplate121/ Name 用于指定List Definition的内部名称。不能使用空格或特殊字符。此名称还用于查找包含用于定义正在使用的架构的 Schema.xml 文件的文件夹。 本例定义的名字是PicListDefinition Type : 是个 Integer类型值。提供这个List Template的唯一标识符。此标识符只需要在这个Feature内保持唯一注意仅限于这个Feature它不用在所有的Feature Definition 或Site Definition内保持唯一这比较符合常理因为有可能不同的Feature Definition 或Site Definition是由不同的人开发他们之间不可能还要为List Tempalte的Type保持唯一随时进行协商。如果你想要查看都有哪些默认列表模板类型请参阅SPListTemplateType
在本例我们给它一个值10006请注意这个值将会用到List Instance的定义中它们二者必须对应一致。 BaseType :是个Integer值。用于为此List Template指定基本类型或默认架构可以的值如下: 0 -- GenericList 1 -- DocumentLibrary 3 -- DiscussionBoard 4 — Survey 5 -- Issue 本例由于我们定义的是PicList的类型是Document Library所以此处设置为1。 OnQuickLaunch:本例设置为TRUE即在网站的“快速启动”栏中显示根据本List Template定义创建的List实例这样我们一旦部署我们的这个Solution就可以在我们的测试网站的QuickLaunch栏找到这个List实例。 SecurityBits:它看似一个Integer类型其实是个 Text值,是包含一个 2 位数字的字符串。该字符串中的第一个数字控制读取权限第二个数字控制编辑权限。对于读取权限有效的数字如下 1 用户可读取所有项。 2 用户只能读取自己的项。 对于编辑权限有效的数字如下 1 用户可编辑所有项。 2 用户只能编辑自己的项。 4 用户不能编辑项。 需要注意的是此处的设置对具有 ManageLists 权限的用户他们自然具有读写权限不起作用。 本例我们设置的值为11即用户可读取可编辑所有项。 Sequence : Integer值。指定排序优先级以供“创建”页上的List Template使用。如果未设置 Sequence则该模板显示在同样缺少 Sequence 值的任何其他模板的任意顺序的最后。指定相同序列的两个模板以任意顺序排序在一起。 DisplayName:指定列表定义的显示名称。 Description:提供列表定义的说明 Image:指定指向用于表示列表的图标的 URL。 DocumentTemplate: Integer值。它只在 BaseType 设置为 1文档库的 ListTemplate 元素中有效。考虑到未来兼容性该属性应为空或对应于 DocumentTemplates 枚举中 DocumentTemplate 元素的 Type 属性 下面是一个表说明List Template的各个属性 三、对于ListInstance 主要用于定义List Instance的相关特性。 本例的定义代码如下: ListInstance TitleMyContentType1 - ListInstance1 OnQuickLaunchTRUE TemplateType10006 UrlLists/MyContentType1-ListInstance1 DescriptionMy List Instance /ListInstance Title :架构中此List实例的标题。该标题必须是唯一的即在其所部署的网站注意不是其所在的所有网站或网站集上必须唯一不能有与其重名的其它List存在。 OnQuickLaunch指定要通过“快速启动”导航来为列表打开的视图页的 URL。 TemplateType这个值必须与要使用的列表模板的整数标识符一样在上面的List Template中我们定义的Type10006所以此处也必须使用此值以使二者对应起来。这了是在Instance与Template之间建立关联的关联点。 Url放置此List实例的相对于网站的 URL。 Description:列表实例的说明。 CustomSchema:这个属性在本例没有使用它是可选属性类型为 string。用于指定用于列表实例的自定义架构。它是Sharepoint2010新引入的特性它为用户在后期介入控制List的相关特性以及测试提供了方便。这个属性以后可能会继续写笔记来说明它。 四、Schema.xml说明 前面我们说过一个List Instance对应着一个List Template而一个List Tempalet又对应着一个 Schema.xml这个Schema.xml是List Definition的基本组成文件这个文档以Element元素作为根节点其下包含的内容有:
.默认视图定义 .列表中的字段定义 .列表视图的工具栏定义 .内容类型声明 ContentType .以及列表的其他元数据(eg:列表说明..)。 一个Schema.xml文件总体结果如下图: 下面分别介绍它的各个节点以节点下的内容 4.1 Content Type节点 本例的定义如下: 这个节点下描述了此List Definition所用到的ContentType.这里必须注意的是:我们在前面用户自定义ContentType1的Elements.xml中描述的内容在这里的Schema.xml中的ContentType节点里又必须重新描述一下这是微软的使用要求虽然这样看来似乎有些重复了。 因为这个节点就是用于描述列表内容类型声明的如果这里的Content Type是系统默认的那么我们只需要加入对此系统的ContentType的引用就行(eg :ContentTypeRef ID0x01)但由于本例我们使用的ContentType是用户自定的这个定义有可能是在其它Solution中开发并部署而本处的Solution并不知道如何引用用户自定义的ContentType所以在Schema.xml中就必须要重新描述一下。 4.2 Fields节点 这个节点包含 Schema.xml 文件中的列表定义或全局 Onet.xml 文件中的基本列表类型的字段定义以指定在列表中实现的字段。 这里包括我们用户自定义的Site Column如本例的 Field ID{B8A42D20-BE9C-48ED-AFC1-78BD48C523A9} NameCameralModel TypeText GroupExtended Columns DisplayNameCameral Used / 还包括我们引用的以及移除的Field,如本例的: Field ID{e241f186-9b94-415c-9f66-255ce7f86235} NameNotes SourceIDhttp://schemas.microsoft.com/sharepoint/v3 StaticNameNotes Group_Hidden DisplayName$Resources:core,About_Me; ReadOnlyFALSE TypeNote SortableFALSE RichTextTRUE RichTextModeFullHtml FromBaseTypeTRUE / Field ID{a5d2f824-bc53-422e-87fd-765939d863a5} TypeDateTime Group$Resources:core,Document_Columns; ShowInNewFormFALSE ShowInFileDlgFALSE NameImageCreateDate DisplayName$Resources:core,Date_Picture_Taken; FormatDateTime SealedTRUE SourceIDhttp://schemas.microsoft.com/sharepoint/v3/fields AllowDeletionTRUE StaticNameImageCreateDate Customization / Field ID{922551b8-c7e0-46a6-b7e3-3cf02917f68a} TypeComputed Group_Hidden NameImageSize DisplayName$Resources:core,Picture_Size; ShowInNewFormFALSE ShowInFileDlgFALSE ShowInEditFormFALSE FilterableFALSE SortableFALSE SourceIDhttp://schemas.microsoft.com/sharepoint/v3/fields StaticNameImageSize Customization 当然还有从Parent继承下来的其它Fields这里就不一一说明了下面是本例中此部分的代码截图:
当然还有从Parent继承下来的其它Fields这里就不一一说明了。 4.3 Views节点 这个节点顾名思意就是与定义List的视图有关的。它是用于定义包含在列表中使用的视图集。在Sharepoint中每个List都可以包含大量的视图。 一个Views节点包括许多View节点一个View节点又包括诸如:Aggregations、GroupByFooter、GroupByHeader、Joins、PagedClientCallbackRowset、PagedRecurrenceRowset、PagedRowset、ParameterBindings、ProjectedFields、Query、RowLimit、RowLimitExceeded、Toolbar、ViewBidiHeader、ViewBody、ViewData、ViewEmpty、ViewFields、ViewFooter、ViewHeader、ViewStyle、XslLink等类型的节点定义。这些节点其实就是定义一个View的方方面面(如:工具条显示显示行限制,视图类型等等) 本例的Views节点如下图: 里面定义了不少的View下面就以第一个View的定义来说明 View BaseViewID0 TypeHTML MobileViewTRUE TabularViewFALSE FreeFormTRUE Toolbar TypeStandard / XslLink DefaultTRUEmain.xsl/XslLink RowLimit PagedTRUE30/RowLimit ViewFields FieldRef NameDocIcon /FieldRef FieldRef NameLinkFilenameNoMenu /FieldRef FieldRef NameEditor /FieldRef /ViewFields ParameterBindings ParameterBinding NameNoAnnouncements LocationResource(wss,noitemsinview_doclibrary) / ParameterBinding NameNoAnnouncementsHowTo LocationResource(wss,noitemsinview_doclibrary_howto) / ParameterBinding NameAddNewAnnouncement LocationResource(wss,Add_New_Document) / ParameterBinding NameMoreAnnouncements LocationResource(wss,MoreDocuments) / /ParameterBindings Query OrderBy FieldRef NameModified AscendingFALSE /FieldRef /OrderBy /Query /View 4.3.1、View元素:先看View元素的属性详细的说明参考MSDN BaseViewID属性:类型为 Integer。指定基视图的 ID。如果你是通过Sharepoint的UI来创建List的ViewsBaseViewID将会按顺序给值即:0,1,2,3,..n。 如果你通过List Definition的Schema.xml来定义Views则它们不一定非得是按顺序递增的你也可以自己给定但必须确保它是唯一的(eg: 0,1,3,7,11,16,22....)。 对于BaseViewId3这个视图比较特殊网上有人提到它没有New与Upload菜单它可能是一个Explorer视图。 Type属性:指定视图的呈现类型。该类型是常见的枚举 HTML 视图并可设置为 HTML、Chart 或 Pivot。本例中设置为HTML类型。 MobileView属性:若要指定标准 SharePoint 列表视图是默认的移动视图则为 TRUE。只可以将每个列表中的一个视图指定为默认的移动视图。本例就是把第一个视图设置为默认的移动视图。 TabularView属性:告诉系统打不打开TabularView显示效果此效果如下图: FreeForm:若要在呈现字段时指定某些字段类型的替代字段格式则为 TRUE。尤其是此属性将影响对自定义非表格格式视图类型中特别有用的数字列的对齐方式。 4.3.2 Toolbar 元素 : 用于定义列表视图的工具栏该工具栏是视图的一部分显示在视图页眉的上方如图: 此元素的下定义格式如下:
Toolbar Position After Type Standard | FreeForm /Toolbar Position After工具栏将在视图正文下方出现反之工具栏将在视图正文上方出现。 4.3.3 XslLink元素: 对列表视图应用在指定 XSL 文件中定义的模板。 XSL(EXtensible Stylesheet Language)是指可扩展样式表语言。 XSL之于 XML 就像 CSS 之于 HTML。说白了就是将XML中的数据用指定的显示格式输出XML不像HTML,它不包含任何显示格式的信息 XSL 包含两个部分 a. XSLT – 用于转换 XML 文档的语言. XSLT 是指 XSL 转换 (XSL Transformation) b. XPath – 用于在 XML 文档中导航的语言 XSL 文档是由模板或规则构成,每个模板定义应用于特定 XML 节点的规则。XSL 模板如下所示
xsl:template match/....../xsl:template 模板的作用是用来承载XML文档中的数据的,就像一个模具如果这个模具是方形的那么用这个模具做出来的模型也一定是方形的而XML文档中的数据就是用来真充模具的原料。实际上在模板中可以嵌套子模板但最上层模板必须将match设为/。 本例定义使用了Main.xslMain.xsl是Sharepoint2010三个默认的XSLT Stylesheets之一用于Sharepoint的Data 视图与List 视图的Webpart并与vwstyle.xsl和fldtypes.xsl一起使用。
XslLink DefaultTRUEmain.xsl/XslLink 4.3.4 RowLimit元素 这个好理解就是设置要在视图中显示的项目数的行限制 4.3.5 ViewFields元素: 在这个元素中通过其子元素 FieldRef 元素提供视图中的字段集。 如本例: ViewFields FieldRef NameDocIcon /FieldRef FieldRef NameLinkFilenameNoMenu /FieldRef FieldRef NameEditor /FieldRef /ViewFields 提供了三个字段DocIcon,LinkFilenameNoMenu与Editor 4.3.6 ParameterBindings元素:主要用于为用于呈现视图的 XSL 提供相关信息它里面的子元素ParameterBinding就是针对样式表的参数绑定。 SharePoint Foundation 可使用参数绑定来为XSL中的XSLT 转换提供资源。要定义要在 XSLT 中使用的资源可在 .resx 文件中定义该资源将该资源绑定到视图方法是在列表的 Schema.xml 文件的ParameterBindings 部分中声明该资源然后在自定义 XSLT 中使用该资源。还可以编程方式通过对象模型添加参数绑定。 所以我们需要知道的就是这个元素是和我们定义视图的样式有关的为了定义我们的视图样式我们需要引用一些外部资源而到哪里去找这些资源就是在这个地方利用parameterBinding来指明资源的位置。 ParameterBinding的使用的格式就是:
ParameterBinding Name”parameterName” Location”Resource(resourceFile,resourceName)” / 参照本例的定义: ParameterBindings ParameterBinding NameNoAnnouncements LocationResource(wss,noitemsinview_doclibrary) / ParameterBinding NameNoAnnouncementsHowTo LocationResource(wss,noitemsinview_doclibrary_howto) / ParameterBinding NameAddNewAnnouncement LocationResource(wss,Add_New_Document) / ParameterBinding NameMoreAnnouncements LocationResource(wss,MoreDocuments) / /ParameterBindings 它里面定义了三个参数资源都是到Resource中去对应Name寻找寻找的resourceFile文件名就是wssresourceName名分别是noitemsinview_doclibrary,noitemsinview_doclibrary_howto,Add_New_Document与MoreDocuments。 关于XSLT的参数绑定请参考MSDN 4.3.7 Query元素:这个元素也好理解就是定义视图的查询。即在加载视图的数据时要显示哪些数据在此视图中。 本例的查询代码如下: Query OrderBy FieldRef NameModified AscendingFALSE /FieldRef /OrderBy /Query 即只设置了按照Modified字段进行排序的要求 4.4 Form节点 此节点用于定义基列表类型中的表单集合。 本例定义如下: 以本例中的DisplayForm定义为例 Form TypeDisplayForm SetupPathpages\form.aspx UrlForms/DispForm.aspx WebPartZoneIDMain / Type属性:用于指示要描述的表单类型可为以下值之一DisplayForm、EditForm 或 NewForm。 SetupPath属性:指定包含表单 .aspx 页的安装目录中文件夹的相对路径例如pages/form.aspx。 Url属性:指定用于表单的 ASP.NET 文件的路径。 WebPartZoneID属性:指定 Web 部件的区域。 在本例中你可能还注意到有一个NewFormDialog这个是用于定义一个界面这个界面用于当用户需要在Sharepoint UI上创建一个新的List Item或修改一个List Item时就会跳出这个类似于Dialog的界面来让用户输入List Item信息。 4.5 DefaultDescription 元素 设置在列表视图的标题区域中和 Microsoft SharePoint Foundation 的“文档和列表”页上显示的默认说明。 本例
DefaultDescription$Resources:core,camlidDc5;/DefaultDescription
是通过引用Resource资源中的定义来实现。
有了上面的说明我们对List Definition有个大致的感性认识接下来Build并部署我们的Solution然后到测试网站上去查看结果效果如下: