首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SPFieldMultiChoice的级联ListBoxes - issue默认为默认内容类型

问使用SPFieldMultiChoice的级联ListBoxes - issue默认为默认内容类型
EN

Stack Overflow用户
提问于 2009-10-10 02:41:22
回答 1查看 863关注 0票数 0

我最终修改了来自公开发布的POC:http://datacogs.com/datablogs/archive/2007/08/26/641.aspx的源代码,它是级联下拉菜单的自定义字段定义。修改是为了允许父-子列表框,用户可以在其中多选以过滤和选择要写回SharePoint列表的值。我让父子级联行为正常工作,但是保存操作只接受默认的Content Type值。

我将自定义字段控件的基类型从"SPFieldText“更改为"SPFieldMultiChoice",同时将文本字段定义值从:”FLD_TYPES“更改为"MultiChoice”。

说明步骤: 1.创建自定义字段,该字段派生自‘SPFieldMultiChoice’类。自定义字段允许选择多个值。2.将使用上述自定义字段创建的字段添加到自定义内容类型中,该自定义内容类型是从从‘文档’内容类型派生的GUI创建的。3.将自定义内容类型添加到文档库。4.上传文档,选择自定义内容类型并标记到文档。A.如果文档类型是.xls、.doc、.txt等,则使用正确的元数据标记正确的内容类型。如果文档类型为.xlsx、.docx,则会标记“文档内容类型”。

问题摘要- Point#B:这是一个问题,因为如果上载文档的类型为.xlsx或.docx,则未标记正确的内容类型,并且会标记默认内容类型。但是,如果文档类型是.xls或.doc,则相同的内容类型、相同的自定义字段也有效。

感谢您在这方面的投入。

感谢您抽出时间通读我的帖子。

干杯,~Poonam

EN

回答 1

Stack Overflow用户

发布于 2009-10-10 22:15:22

不确定为什么会发生这种情况,最好将此行为通知Microsoft。您所描述的.doc和.docx之间的区别非常非常奇怪。您是否可以尝试在itemeventreceiver中设置内容类型,以强制项目的ContentType或ContentTypeId字段显式反映正确的内容类型。

即

代码语言:javascript
复制
item["ContentTypeId"] = new ContentTypeId("0x010100your_id_plus_the_part_added_by_list");

the_part_added_by_list是将ctype添加到列表时添加的额外guid,这是因为列表中的ctype基本上是您添加的实际ctype的子项

即0x010100 YOURGUID 00 LIST SPECIFIC GUID,

你可以使用诸如Stramit CAMLViewer或CAMLViewer这样的工具来获取这个完整的id。通过循环遍历SPLIst的ContentTypes集合。

(我的猜测是在ItemUpdating / ItemUpdated事件中执行此操作,以查看在这些调用期间ctype是否存在差异)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1545427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档