Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在EditForm中覆盖SharePoint字段呈现?_Sharepoint_Sharepoint 2007 - Fatal编程技术网

如何在EditForm中覆盖SharePoint字段呈现?

如何在EditForm中覆盖SharePoint字段呈现?,sharepoint,sharepoint-2007,Sharepoint,Sharepoint 2007,我有一个带有选项字段的列表,它是多选,意味着有许多复选框 我想渲染它,使它被一个框架包围,例如一个带边框的DIV标记 (框架应位于HTML文档中) 如何编辑控件模板/FLDTYPES.XML/创建控件/任何东西来实现这一点 谢谢 关于控件模板的想法听起来是对的。我认为,只要在web上创建自定义SharePoint字段类型,您就会发现一些成功。您可能希望从SPFieldMultiChoice继承字段类型,并且控件的ascx文件将包含div及其样式 对于自定义字段类型,通常需要创建: 字段类型类

我有一个带有选项字段的列表,它是多选,意味着有许多复选框

我想渲染它,使它被一个框架包围,例如一个带边框的DIV标记

(框架应位于HTML文档中)

如何编辑控件模板/FLDTYPES.XML/创建控件/任何东西来实现这一点


谢谢

关于控件模板的想法听起来是对的。我认为,只要在web上创建自定义SharePoint字段类型,您就会发现一些成功。您可能希望从SPFieldMultiChoice继承字段类型,并且控件的ascx文件将包含div及其样式

对于自定义字段类型,通常需要创建:

  • 字段类型类
  • 表示字段类型的渲染控件的控件类
  • 包含呈现控件的html支架的ascx文件
这篇文章似乎是一个很好的起点:


自定义字段类型的SharePoint SDK条目也足够好用作起始点。

< P>您也可以考虑SharePoint管道磁带方法——内容编辑器Web部分(CEWP)

中的JavaScript /jQuery 这篇文章向您展示了如何将其添加到新表单/编辑表单的总体方法:-

有很多关于SharePoint和jQuery的文章可以让您了解如何进一步在复选框周围添加边框,以及一些链接:-

免责声明-这种方法经常被吹捧为“无代码”,因为现实情况是,它更多的是让您快速“完成工作”(通常是因为它绕过了管理员、更改控制等),并且可能应该被视为黑客行为。功能强大但使用得当!也许有一件事要考虑的是,如果停止工作(Service PACK,升级到2010,TEMPARTET更改等),那么有什么不利的地方——我怀疑丢失的边界是不是很关键?


有关讨论,请参阅。

正如Ryan所述,使用jQuery将控件包围在div中是最干净的方法。它只需要将ContentEditorWebPart(CEWP)添加到站点和上传的jQuery库(例如文档库,或使用SharePoint Designer,任何文件夹)包括对jQuery库的引用,方法是通过CEWP将类似这样的脚本添加到页面:

<script type="text/javascript" src="pathtojquerylibrary/jquery.js"> <script>

然后,您需要编写一些javascript代码,也在CEWP中,以选择所需的控件,向使用jquery选择的html父项添加一个div,然后将所选html剪切/粘贴到新div中

它看起来像这样(这段代码不完整,当然也没有经过测试):

$('query').parent().append('').append($('query').html());
//其中“query”是所需控件的jquery选择器

嘿,克里斯,谢谢你的快速回复,我可以这样做并覆盖开箱即用字段类型吗?我想更改现有列表中所有现有多项选择字段的呈现方式。我现在不在SharePoint计算机上,但我猜12配置单元内的内置控件模板中有一个默认呈现模板。您当然可以修改它以显示您的边框,但请记住,将来的service Pack或其他更新可能会覆盖您的更改。而修改这些文件总是充满了至少一点风险!希望这里的其他人能够识别出一种更适合您的解决方案!我个人喜欢这个想法,但在一些公司,用这样的东西破坏管理和变更控制过程可能会比原来的问题本身带来更多的麻烦!
$('query').parent().append('<div></div>').append($('query').html()); 
// where 'query' is the jquery selector for the control you want