如何使用 SPServices 自动过滤 Sharpeoint 列表



我不确定SPServices是否是执行以下操作的正确框架。

我有一个应用程序页面,默认情况下将显示一个包含 16,000 个项目的 sharepoint 列表。默认情况下,它根据名称显示前 30 个列表项。

我想放一个文本框,当用户开始键入时,网格会自动缩小,而无需按回发按钮。

假设共享点列表具有:

client code, client name, ClientOwner
0001, google, john smith
0002, dell, maria smith
0003, microsoft, bill gates

因此,一旦我输入sm,它应该显示前2行

如果SPService可以做到这一点,请告诉我,任何可以实现这一点的例子都会有所帮助,我不是在问完整的代码,但至少是一个起点。

这是从我刚刚编写的库中获取的一些通用代码。基本上,我将大量链接存储在一个列表中,用户可以通过输入部分名称来搜索链接。

var input = "example string"
var comparisons = [];
var splitInput = this.input.split(" ");
for (var comparison in splitInput) {
    if (splitInput[comparison].length > 0) {
        comparisons.push(splitInput[comparison]);
    }
}
if (comparisons.length == 0) {
    return;
}
var comparisonString = "";
var levels = 0;
for (i = 0; i < comparisons.length; i++) {
    if (comparisons.length > 1 && i < comparisons.length - 1) {
        comparisonString += "<And>";
        levels++;
    }
    comparisonString += "
        <Contains>
            <FieldRef Name='Title' />
            <Value Type='Text'>" + comparisons[i] + "</Value>
        </Contains>";
}
for (i = 0; i < levels; i++) {
    comparisonString += "</And>";
}
var internalLinks = [];
var externalLinks = [];
$().SPServices({
    operation: "GetListItems",
    webURL: "/path/to/site",
    listName: "exampleList",
    async: false,
    CAMLViewFields: '
        <ViewFields>
            <FieldRef Name="Title" />
            <FieldRef Name="Site_x0020_Address" />
        </ViewFields>',
    CAMLQuery: '
        <Query>
            <Where>' + comparisonString + '</Where>
            <OrderBy>
                <FieldRef Name="Title" Ascending="True" />
            </OrderBy>
        </Query>',
    CAMLRowLimit: 15,
    completefunc: function (jqXHR, Status) {
        $(jqXHR.responseXML).SPFilterNode("z:row").each(function (i, row) {
            var _temp = $(row).attr("ows_Site_x0020_Address").split(", ");
            if (_temp.length > 1 && _temp[0].length > 0 && _temp[1].length > 0) {
                if (_temp[0].search("/mysite.com/") < 0) {
                    externalLinks.push({
                        link: "<a href='" + _temp[0] + "'>" + _temp[1] + "</a>"
                    });
                } else {
                    internalLinks.push({
                        link: "<a href='" + _temp[0] + "'>" + _temp[1] + "</a>"
                    });
                }
            }
        });
    }
});

相关内容

  • 没有找到相关文章

最新更新