sharepoint 2010使用jscript检索Lookup列值

时间:2011-10-31 16:46:28

标签: javascript sharepoint-2010

我尝试在sharepoint 2010列表中检索查找字段的内容。 (我的列表) 我通过使用sharepoint designer和javascript.js文件来完成此操作 java脚本适用于我脚本中的大多数列。

但不是查找列。

我的列Lookup列名为Device 对于查找列值,结果如下:

  [object Object]

包括方括号[],我想知道如何展开它以显示列表内容。

这是我检索列表数据的代码

    <script type="text/javascript">  
    function ViewItem()  {
    var context = new SP.ClientContext.get_current(); 
    var web = context.get_web();
    var list = web.get_lists().getByTitle('myList');
    var query = SP.CamlQuery.createAllItemsQuery();
    allItems = list.getItems(query);
    context.load(allItems, 'Include(Title,Device)');
    context.executeQueryAsync(Function.createDelegate(this, this.success),Function.createDelegate(this, this.failed));
    }
    function success() {
    var TextFiled = "";
    var ListEnumerator = this.allItems.getEnumerator();
    while(ListEnumerator.moveNext())
    {
    var currentItem = ListEnumerator.get_current();
    TextFiled += currentItem.get_item('Title') + '->' 
    TextFiled += String(currentItem.get_item('Device')) + '<-' 
    TextFiled += + '\n';
    }
    alert(TextFiled);
    }
    function failed(sender, args) {
    alert("failed. Message:" + args.get_message());
    }</script><a onclick="Javascript:ViewItem();" href="#">View my Items</a>

`

2 个答案:

答案 0 :(得分:0)

你需要像SP.FieldLookupValue一样把它投射出来:

SP.FieldLookupValue _value = listItem.FieldValues["Device"] as SP.FieldLookupValue;
var mylookupvalue= _value.LookupValue;

请参阅Get value from lookfield fieldSP.FieldLookupValue Properties

答案 1 :(得分:0)

您可以通过指定get_lookupId() [适用于ID]或get_lookupValue() [适用于价值]

来查看查找列数据
// Load ClientContext & oWeb here..
this.oList = oWeb.get_lists().getByTitle("Documents");
var camlQuery = new SP.CamlQuery();
camlQuery.set_viewXml('');
this.oListItem = oList.getItems(camlQuery);
this.clientContext.load(this.oListItem);
this.clientContext.executeQueryAsync(
    Function.createDelegate(this, successGetListHandler),
    Function.createDelegate(this, errorGetListHandler)
);

function successGetListHandler() {
    var listItemInfo = '';
    var listItemEnumerator = this.oListItem.getEnumerator();
    while (listItemEnumerator.moveNext()) {
        var oListItem = listItemEnumerator.get_current();
        listItemInfo += '\nTitle: ' + oListItem.get_item('FileLeafRef') + 
            '\nChecked out User: ' + oListItem.get_item('CheckoutUser');
    }

    jQuery('.checked-out-count').html('List Name is : ' + oList.get_title() + '\n ' + listItemInfo);
}
function errorGetListHandler() {
    alert("Request failed: " + arguments[1].get_message());
}

如需更多参考,您可以在question中查看答案。