首页 > 解决方案 > SharePoint JavaScript 显示查找字段中的值

问题描述

现有系统具有 HTML、JavaScript 表单,其中包含以下内容:SharePoint 列表、带有值 SharePoint 列表的“CustomerType”、带有名为查找列的“Customer”、“CustomerType”从“CustomerType”中提取值

需要添加一个新字段,因此我通过创建镜像“CustomerType”:SharePoint 列表、带有值 SharePoint 列表的“CustomerSegmentation”、带有名为查找列的“Customer”、“CustomerSegmentation”从“CustomerSegmentation”中提取值

我复制了 HTML、JavaScript 等 - 在“客户”列表中选择一个值和创建项目都很好。但是,当我尝试使用以下命令在“显示”HTML 表单上显示所选值时:

                    var CustomerSegmentationField = oListItem.get_item('CustomerSegmentationField');
            if (checkNotEmpty(CustomerSegmentationField)) {
                $("#selCustomerSegmentationField").val(CustomerSegmentationField.get_lookupId());
            }

我收到此错误:未捕获错误:属性或字段尚未初始化。它尚未被请求或请求尚未执行。可能需要明确要求。at Function.Error.create (ScriptResource.axd?d=k5RfMmPNK2hWIceXJ8-ajx3E8J_9Fwh_cmdsa2b8w5b_6SdxoV5CP7PTQYU2geZFptqlColfo4USOXQsdBih3W0VS_49yn_5vEAL69UdI91yC-tDiYJ5qy_HJzfGk6ituovIGh_kYQ43NWRInP8bleYrT4aM9uWrD_zUrKaOdVSegfYI0_gHDDpmP74zGEwh0&t=ffffffffecf19baa&ctag=200622:formatted:177) at SP.ListItem.$1D_2 (sp.js:formatted:15164) at SP.ListItem.get_item ( sp.js:formatted:14868) 在 onQuerySucceeded (Display-New-Request.aspx?itemID=9076:1678) 在阵列。(脚本资源。axd?d=k5RfMmPNK2hWIceXJ8-ajx3E8J_9Fwh_cmdsa2b8w5b_6SdxoV5CP7PTQYU2geZFptqlColfo4USOXQsdBih3W0VS_49yn_5vEAL69UdI91yC-tDiYJ5qy_HJzfGk6ituovIGh_kYQ43NWRInP8bleYrT4aM9uWrD_zUrKaOdVSegfYI0_gHDDpmP74zGEwh0&t=ffffffffecf19baa&ctag=200622:formatted:23) at ScriptResource.axd?d=k5RfMmPNK2hWIceXJ8-ajx3E8J_9Fwh_cmdsa2b8w5b_6SdxoV5CP7PTQYU2geZFptqlColfo4USOXQsdBih3W0VS_49yn_5vEAL69UdI91yC-tDiYJ5qy_HJzfGk6ituovIGh_kYQ43NWRInP8bleYrT4aM9uWrD_zUrKaOdVSegfYI0_gHDDpmP74zGEwh0&t=ffffffffecf19baa&ctag=200622:formatted:2555 at SP.ClientRequest.$3K_0 (sp.runtime. js:2) 在数组中。(ScriptResource.axd?d=k5RfMmPNK2hWIceXJ8-ajx3E8J_9Fwh_cmdsa2b8w5b_6SdxoV5CP7PTQYU2geZFptqlColfo4USOXQsdBih3W0VS_49yn_5vEAL69UdI91yC-tDiYJ5qy_HJzfGk6ituovIGh_kYQ43NWRInP8bleYrT4aM9uWrD_zUrKaOdVSegfYI0_gHDDpmP74zGEwh0&t=ffffffffecf19baa&ctag=200622:formatted:

我将非常感谢您的帮助-谢谢!

<script>
    function retrieveListItems(ID) {

        var clientContext = new SP.ClientContext("https://xxxxxxx/DIG/Customer/");
        var oList = clientContext.get_web().get_lists().getByTitle('Customer');
        var camlQuery = new SP.CamlQuery();
        camlQuery.set_viewXml("<View>\
                                    <Query>\
                                       <Where>\
                                          <Eq>\
                                             <FieldRef Name='ID' />\
                                             <Value Type='Counter'>"+ ID +   
"</Value>\
                                          </Eq>\
                                       </Where>\
                                    </Query>\
                                  </View>");
        this.collListItem = oList.getItems(camlQuery);

        clientContext.load(collListItem);

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

    }

    function onQuerySucceeded(sender, args) {
        var listItemEnumerator = collListItem.getEnumerator();
        while (listItemEnumerator.moveNext()) {
            var color = new Object();
            var oListItem = listItemEnumerator.get_current();
            // Add Section wise set items here.

            // Section 1
            $("#selRequestType").val(oListItem.get_item('RequestType'));
            
$("#txtCustomerNumber").val(oListItem.get_item('CustomerNumber'));
            var salesCont = (oListItem.get_item('ArdentSalesContact')).get_lookupValue();
            $("#txtArdentSalesContact").val(salesCont);
            var csr = (oListItem.get_item('CSR')).get_lookupValue();
            $("#txtCSR").val(csr);
            
$("#txtAdditionalComments").val(oListItem.get_item('AdditionalComments'));
            var company = oListItem.get_item('Company');
            var companyArray = company.split('~');
            for (var i = 0 ; i < companyArray.length; i++) {
                $.each($("input[name='company']"), function () {
                    if ($(this).val() == companyArray[i]) {
                        $(this).prop('checked', true);
                    }
                });
            }
            var OrderSystem = oListItem.get_item('OrderSystem');
            OrderSystemArray = OrderSystem.split('~');
            for (var i = 0 ; i < OrderSystemArray.length; i++) {
                $.each($("input[name='OrderSystem']"), function () {
                    if ($(this).val() == OrderSystemArray[i]) {
                        $(this).prop('checked', true);
                    }
                });
            }

$("#selDoesExistInSFDC").val(oListItem.get_item('DoesLeadAccountExistInSFDC')) 
;
            
$("#txtPasteURL").val(oListItem.get_item('PasteAccountURLFromSFDC'));
$("#txtParentNationalAccount").val(oListItem.get_item('ParentNationalAccount'));
            $("#txtSoldToName").val(oListItem.get_item('SoldToName'));
            
$("#txtSoldToLegalName").val(oListItem.get_item('SoldToLegalName'));
            $("#txtShortName").val(oListItem.get_item('ShortName'));
             
$("#selCustomerChannel").val(oListItem.get_item('CustomerChannel'));

//New field
            var CustomerSegmentationField = oListItem.get_item('CustomerSegmentationField');
            if (checkNotEmpty(CustomerSegmentationField)) {
   
$("#selCustomerSegmentationField").val(CustomerSegmentationField.get_lookupId()); 

function onQueryFailed(sender, args) {

        alert('Request failed. ' + args.get_message() + '\n' + 
args.get_stackTrace());
    }
</script>

这包括那部分吗?

标签: javascripthtmlsharepoint

解决方案


该错误提到您尚未加载该字段。

确保您已加载项目并且字段静态名称与“CustomerSegmentationField”匹配</p>

clientContext.load(listItem);    
clientContext.executeQueryAsync(Function.createDelegate(this, this.OnLoadSuccess), Function.createDelegate(this, this.OnLoadFailed));

推荐阅读