JSLink文件写好之后,除了手动部署到SharePoint里,还有其他办法吗?
有多种方法可以设置JSLink的JavaScript 文件的引用:
- server object model
- WindowsPowerShell
- Features里面的Element.xml文件
- Web Part 属性
- client object model。
下面是一些例子:
Server Object Model:
先找到目标表单,然后再通过JSLink属性来设置:
SPWeb web= SPContext.Current.Web;
SPListlist = web.Lists.TryGetList("MyTasks");
if (null!= list)
{
SPForm newForm = list.Forms[PAGETYPE.PAGE_NEWFORM];
if (null!= newForm)
{
newForm.JSLink = "~/mycustom.js";
}
}
Windows PowerShell:
和Server Object Module的逻辑一样:
$web =Get-SPWeb
$field =$web.Fields["MyCustomField"]
$field.JSLink= "~/layouts/mycustom.js"
$field.Update()
$web.Dispose()
Element.xml:
先添加一个Field节点,然后设置JSLink属性:
<FieldID="{eb3eed37-961b-41bd-b11c-865c16e47071}"
Name="MyCustomField"DisplayName="Custom Columns"
Type="Text"Required="FALSE" Group="JSLink Demo"
JSLink="~site/stylelibrary/JSLinkDemo/jquery-1.10.2.min.js|
~site/stylelibrary/JSLinkDemo/customview.js">
</Field>
这里注意一下,使用|符号,可以添加多个JS文件。
Web Parts 属性:
在页面上进入编辑模式,然后找到Web Part, 然后编辑属性,在Miscellaneous里面能找到JSLink的属性,在这里设置。
The Client-Side Object Model (CSOM):
你可以使用CSOM设置field的JSLink. 记住不能使用JaveScript直接修改Site column的属性,你需要在List里更新。如果你尝试更新site column的属性,你会得到下面的错误:
This functionality is unavailable for fields not associated with a list...
JavaScript CSOM:
fieldCollection= taskList.get_fields();
this.oneField= fieldCollection.getByInternalNameOrTitle("MyCustomField");
this.oneField.set_description("MyNewFieldDescription");
this.oneField.update();