自定义列表表单 - 自动填充管理器

时间:2010-06-18 18:00:26

标签: list sharepoint-2007 user-profile

我有一个名为“经理”列的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/

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

谢谢,导航

1 个答案:

答案 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"/>