我有一个名为“经理”列的Sharepoint 2007自定义列表,用于保存用户的管理器(单行文本)。
创建新项目时,我希望NewForm.aspx使用用户的经理自动填充Manager字段。
我知道我们可以使用JQuery自动填充列表表单字段,以访问作为Web服务公开的Sharepoint的“用户信息列表”,如下面的Marc博客:
http://sympmarc.com/2010/04/29/populating-a-sharepoint-list-form-with-the-current-user-information/
我的问题是管理员没有存储在“用户信息列表”中,所以我无法像上面那样检索它,任何人都有任何想法?
谢谢,导航
答案 0 :(得分:0)
这很简单,你需要在“listName”下面声明一个“CAMLQuery”,“CAMLRowLimit”和“CAMLViewFields”,我将用下一个代码示例来解释:
你可以从列表的视图中获取你的CAMLQuery,在sharepoint Designer中打开一个表单,我打开了我的视图列表anuncio.aspx并找到了下一个代码:
<View Name="your list name">
<Query>
<OrderBy>
<FieldRef Name="Title" Ascending="FALSE"/>
</OrderBy>
</Query>
<ViewFields>
<FieldRef Name="Title"/>
<FieldRef Name="Body"/>
<FieldRef Name="Expires"/>
</ViewFields>
<RowLimit Paged="TRUE">30</RowLimit>
<Toolbar Type="Standard"/>
</View>
然后在JavaScript代码中拆分查询caml,具体取决于您的需求或查看视图列表,
var fields ="<ViewFields>"+
"<FieldRef Name='Title'/>"+
"<FieldRef Name='Body'/>"+
"<FieldRef Name='Expires'/>"+
"</ViewFields>";
var query = "<Query>"+
"<OrderBy>"+
"<FieldRef Name='Modified' Ascending='FALSE'/>"+
"</OrderBy>"+
"</Query>";
在变量中设置CAMLQuery后,修改脚本:
$(document).ready(function() {
$().SPServices({
operation: "GetListItems",
async: false,
listName: "Your List name",
CAMLViewFields: fields,
CAMLQuery: query,
completefunc: function (xData, Status) {
$(xData.responseXML).SPFilterNode("z:row").each(function() {
var liHtml = "<tr> <td>" + $(this).attr("ows_Title") + "</td> </tr>";
$("#tasksUL").append(liHtml);
});
}
});
});
</script>
<table id="tasksUL"/>