如何在sharepoint客户端对象模型中获取批准状态字段值

时间:2012-03-21 19:01:37

标签: sharepoint sharepoint-2010 sharepoint-2007 client-object-model

如何使用sharepoint中的客户端对象模型获取列表项审批状态值?

以下是我获取其他属性值的示例代码。

ClientContext.Load(listItems,
                    items => items.Include(
                    item => item.Id,
                    item => item.DisplayName,
                    item => item.FileSystemObjectType,
                    item => item.HasUniqueRoleAssignments));

2 个答案:

答案 0 :(得分:2)

您可以像这样使用

获得批准状态
ClientContext.Load(listItems,
                items => items.Include(
                item => item.Id,
                item => item.DisplayName,
                item => item["Status"]));

你可以像这样获得任何字段自定义或共享点默认字段值

答案 1 :(得分:0)

以下是获取和设置(可选)审批状态的完整代码(this.oListItem.get_item('_ ModerationStatus')的可能值:0 - “已批准”,1 - “拒绝”,2-“待处理”) :

<script type="text/javascript" src="/jquery-1.10.2.min.js"></script>
<script src="/jquery.SPServices-2013.02a.js" type="text/javascript"></script>

<script type="text/javascript">


$(document).ready(function () { ExecuteOrDelayUntilScriptLoaded(loadConstants, "sp.js"); });    


function loadConstants() {

    var userid= _spPageContextInfo.userId;
    var requestUri = _spPageContextInfo.webAbsoluteUrl + "/_api/web/getuserbyid(" + userid + ")";
    var requestHeaders = { "accept" : "application/json;odata=verbose" };
    $.ajax({
      url : requestUri,
      contentType : "application/json;odata=verbose",
      headers : requestHeaders,
      success : onSuccess,
      error : onError
    });

    function onSuccess(data, request){
        var loginName = data.d.Title;

        //get current (selected) list item id
        var docurl = document.URL;
        var beginindex = docurl.indexOf('?ID=') + 4;
        var endindex = docurl.indexOf('&Source=');
        var itemid = docurl.substring(beginindex, endindex);

        var ctx = new SP.ClientContext("your site url");
        var oList = ctx.get_web().get_lists().getByTitle('your list name');
        this.oListItem = oList.getItemById(itemid);         

        var appStatus = "";
        ctx.load(this.oListItem);

        ctx.executeQueryAsync(Function.createDelegate(this, function () {  
                                                    //get approval status
                                                    appStatus = this.oListItem.get_item('_ModerationStatus');                                                       

                                                    //set approval status to Approved (0)
                                                    this.oListItem.set_item('_ModerationStatus', 0);
                                                    this.oListItem.update();            

            ctx.executeQueryAsync(
                Function.createDelegate(this, this.onQuerySucceeded), 
                Function.createDelegate(this, this.onQueryFailed)
            );

        }),  function (sender, args) { alert('Error occured' + args.get_message());}); 

    }
    function onError(error) {
        alert("error");
    }       
}

</script>