热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MOSS2010ContentType(内容类型)开发中的一个问题及其解决方法

内容类型是SharePoint中一个很重要的功能,简单地说,它使得我们可以定制列表或者文档库的项目模板。关于这个方面,我以前也写过一些文章介绍,请参考http:zzk.cnblogs.com

内容类型是SharePoint中一个很重要的功能,简单地说,它使得我们可以定制列表或者文档库的项目模板。关于这个方面,我以前也写过一些文章介绍,请参考

http://zzk.cnblogs.com/s?w=blog%3Achenxizhang%20%E5%86%85%E5%AE%B9%E7%B1%BB%E5%9E%8B

 

 

今天要讲的一个问题,是我们在项目中遇到的,虽然不大,但却是困扰了很久,而且百思不得其解(以前在MOSS 2007的时候却没有这个问题)。

这个问题最近与微软中国这边有关的朋友交流才得到结论,有点让人哭笑不得的。不过,还是要谢谢

 

范例是一个简单的Solution。我大致介绍一下里面的内容

1. 基于Item这种基类型,创建了一个ContentType,定义了一个特殊的Field,并且定义了特殊的New,Edit,Display页面

我们的目的是希望用户使用该类型类型的话,新建,编辑和查看的页面都是我们定制过的

 


  xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">

<ContentType ID="0x0100b05ebf7c0a1b48c5aa4aae0a9a8b1067"
Name="SharePointProjectSample - SampleContentType"
Group="Custom Content Types"
Description="My Content Type"
Inherits="TRUE"
Version="0">
<FieldRefs>
<FieldRef ID="{9da97a8a-1da5-4a77-98d3-4bc10456e700}" Name="Comments" DisplayName="Comments"/>
<FieldRef ID="{F7D24529-1883-4686-A6DA-6BA772D6CE7D}" Name="Test" DisplayName="Test"/>
FieldRefs>
<XmlDocuments>
<XmlDocument NamespaceURI="http://schemas.microsoft.com/sharepoint/v3/contenttype/forms/url">
<FormUrls xmlns="http://schemas.microsoft.com/sharepoint/v3/contenttype/forms/url">
<New>
_layouts/SharePointProjectSample/New.aspx
New>
<Edit>
_layouts/SharePointProjectSample/Edit.aspx
Edit>
<Display>
_layouts/SharePointProjectSample/Display.aspx
Display>
FormUrls>
XmlDocument>
XmlDocuments>
ContentType>
Elements>

2. 基于上面这个ContentType,我创建了一个ListDefinition

3. 基于上面这个ListDefinition,我创建了一个ListInstance

image

解决方案部署,没有发现任何问题。我们可以看到一个新的列表创建起来了。

clip_image001

但是,点击”Add new item”的时候,却会发现如下的错误

clip_image002

我们使用IE 9自带的Developer Tools进行调试看看

clip_image002[5]

我们可以看到,其实它确实是想去打开我们那个New.aspx,但我看那个地址编码似乎是有问题的,前面有一串%20,这个应该是空格的意思

那么,这是为什么呢?其实是因为我们在定义ContentType的时候,那个xml文件中有空格。我们将它修改成下面这样子(请注意粗体部分)

 


  xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">

<ContentType ID="0x0100b05ebf7c0a1b48c5aa4aae0a9a8b1067"
Name="SharePointProjectSample - SampleContentType"
Group="Custom Content Types"
Description="My Content Type"
Inherits="TRUE"
Version="0">
<FieldRefs>
<FieldRef ID="{9da97a8a-1da5-4a77-98d3-4bc10456e700}" Name="Comments" DisplayName="Comments"/>
<FieldRef ID="{F7D24529-1883-4686-A6DA-6BA772D6CE7D}" Name="Test" DisplayName="Test"/>
FieldRefs>
<XmlDocuments>
<XmlDocument NamespaceURI="http://schemas.microsoft.com/sharepoint/v3/contenttype/forms/url">
<FormUrls xmlns="http://schemas.microsoft.com/sharepoint/v3/contenttype/forms/url">
<New>_layouts/SharePointProjectSample/New.aspx New>
<Edit>_layouts/SharePointProjectSample/Edit.aspx Edit>
<Display>_layouts/SharePointProjectSample/Display.aspx Display>

FormUrls>
XmlDocument>
XmlDocuments>
ContentType>
Elements>
重新部署,页面出来了,整个世界清静了
 
【备注】个人觉得这个问题应该在产品级别修正掉,而不是给开发人员这种强制性的要求。其实不难的,不是吗,读取那个地址字符串之后,调用trim方法即可。呵呵
 
目前而言,大家还是稍加注意吧,不要有空格
 
 
 
 

推荐阅读
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 深入解析JVM垃圾收集器
    本文基于《深入理解Java虚拟机:JVM高级特性与最佳实践》第二版,详细探讨了JVM中不同类型的垃圾收集器及其工作原理。通过介绍各种垃圾收集器的特性和应用场景,帮助读者更好地理解和优化JVM内存管理。 ... [详细]
  • Docker的安全基准
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 本文介绍如何在 Android 中通过代码模拟用户的点击和滑动操作,包括参数说明、事件生成及处理逻辑。详细解析了视图(View)对象、坐标偏移量以及不同类型的滑动方式。 ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文详细介绍了如何解决Uploadify插件在Internet Explorer(IE)9和10版本中遇到的点击失效及JQuery运行时错误问题。通过修改相关JavaScript代码,确保上传功能在不同浏览器环境中的一致性和稳定性。 ... [详细]
  • 本文详细介绍了如何在BackTrack 5中配置和启动SSH服务,确保其正常运行,并通过Windows系统成功连接。涵盖了必要的密钥生成步骤及常见问题解决方法。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 本文介绍了在使用Visual Studio 2015进行项目开发时,遇到类向导弹出“异常来自 HRESULT:0x8CE0000B”错误的解决方案。通过具体步骤和实践经验,帮助开发者快速排查并解决问题。 ... [详细]
  • 本文基于刘洪波老师的《英文词根词缀精讲》,深入探讨了多个重要词根词缀的起源及其相关词汇,帮助读者更好地理解和记忆英语单词。 ... [详细]
author-avatar
ERIK又
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有