代码之家  ›  专栏  ›  技术社区  ›  HurnsMobile

从SharePoint列表Web服务返回并保存XML对象

  •  0
  • HurnsMobile  · 技术社区  · 16 年前

    我试图在页面加载时用来自Ajax调用的XML响应来填充变量,这样在keyup中,我就可以在不进行重复的get请求的情况下过滤该列表(想想非常简单的自动完成)。我遇到的问题似乎可能与变量范围有关,但我对JS/JQuery还比较陌生,所以我不太确定。

    下面的代码对key up没有任何作用,向其添加警报会告诉我它正在执行 leadResults() 在keyup上,变量返回一个XML响应对象,但它似乎是空的。奇怪的是如果我移动 引线结果() 打电话到 getResults() 函数:用正确的结果填充ul。

    我的头撞在墙上了,请帮忙!

    var resultsXml;
    
    $(document).ready( function() {
        var leadLookupCaml =
             "<Query> \
                <Where> \
                    <Eq> \
                      <FieldRef Name=\"Lead_x0020_Status\"/> \
                      <Value Type=\"Text\">Active</Value> \
                    </Eq> \
                </Where> \
             </Query>"
    
        $().SPServices({
                        operation: "GetListItems",
                        webURL: "http://sharepoint/departments/sales",
                        listName: "Leads",
                        CAMLQuery: leadLookupCaml,
                        CAMLRowLimit: 0,                    
                        completefunc: getResults    
                    });
    
    })
    
    $("#lead_search").keyup( function(e) {
    
    leadResults();
    
    })
    
    
    
    function getResults(xData, status) {
    resultsXml = xData;
    
    }   
    
    function leadResults() {
    xData = resultsXml;
       $("#lead_results li").remove();
       $(xData.responseXML).find("z\\:row").each(function() {
    
            var selectHtml = 
                "<li>"
                 + "<a href=\"http://sharepoint/departments/sales/Lists/Lead%20Groups/DispForm.aspx?ID=" + $(this).attr("ows_ID") + ">" + $(this).attr("ows_Title")+" : " + $(this).attr("ows_Phone")    + "</a>\
                 </li>";
            $("#lead_results").append(selectHtml);
    
    
    
        });
    }
    
    1 回复  |  直到 16 年前
        1
  •  0
  •   HurnsMobile    16 年前

    在校对了我的意见之后,这是显而易见的!Ajax调用需要同步进行。将async设置为false保存了一天!