0

我有一个 Sharepoint 2007 自定义列表,其中包含一个名为“Manager”的列,用于保存用户的 Manager(单行文本)。

创建新项目时,我希望 NewForm.aspx 使用用户的经理自动填充 Manager 字段。

我知道我们可以使用 JQuery 自动填充列表表单字段,以访问作为 Web 服务公开的 Sharepoint 的“用户信息列表”,如下面的 Marc 博客:

http://sympmarc.com/2010/04/29/populating-a-sharepoint-list-form-with-the-current-user-information/

我的问题是管理器没有存储在“用户信息列表”中,所以我无法像上面那样检索它,有人有什么想法吗?

谢谢,导航

4

1 回答 1

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"/>
于 2012-08-24T15:41:28.800 回答