首页 > 解决方案 > 在 AZ 列表视图 Web 部件中搜索 URL 描述

问题描述

我是 Sharepoint 新手,请温柔:-)

我有一个包含几列的 Sharepoint 2010 AZ 列表,这个问题的重要一列是一个包含大约 600 个超链接的 URL 列。每个超链接都有一个有意义的描述显示,而不是 URL 地址本身。

在我的一个网站页面上,我有一个连接到该列表的 AZ 列表视图 Web 部件。我已将其设置为一次仅显示列表中的 30 个条目。

我需要做的是为用户提供一种方法来搜索整个 600 个 URL 以找到他们正在寻找的内容。例如,如果他们在搜索框中键入“入职文档”,则结果应返回描述中包含“入职”的任何 URL,即搜索应不区分大小写。

我在“搜索页面”上找到了一些添加到 HTML 表单 Web 部件中的代码,该代码创建了一个搜索框,并应在同一页面上返回搜索结果列表,但不幸的是,它仅适用于单个关键字。如果我输入“入职”,它会起作用。如果我输入“入职文件”,它不会返回任何内容。

起初,搜索正在查看 URL 列,并且在任何搜索条件下都没有返回任何内容。

然后,我尝试在 AZ 列表中创建一个额外的“NotesTest”列,它是一个“单行文本”类型的列,其中包含超链接描述的文本版本。然后我调整了代码以将搜索指向 NotesTest 列。这会返回单个单词搜索词,但不会返回超过一个单词。

我在 html 表单 web 部件中的代码如下:

function RedirectUrl() {
	var tb = document.getElementById("tbSearch").value;
	var cs = document.getElementById("sfield").value;
	var url = "";

	if (tb != "") {
		if (cs == "NotesTest") {
			url = "FilterField1=" + cs + "&FilterValue1=" + tb;
			window.location.href = "Test-3-SV.aspx?" + url;
		} else {
			url = "FilterName=" + cs + "&FilterMultiValue=*" + tb + "*";
			window.location.href = "Test-3-SV.aspx?" + url;
		}
	} else {
		return false;
	}
}

function ClearUrl() {
	window.location.href = "Test-3-SV.aspx?";
}
Search Field: <select id="sfield"> <option value="URL">URL</option> </select>
Search text: <input id="tbSearch" type="text"/>
<input id="btnSearch" onclick="return RedirectUrl();" type="button" value="Search"/>
<input id="btnClear" onclick="return ClearUrl();" type="button" value="Clear"/>

以下是 URL 列中的条目示例:

如果我搜索“添加”,我希望看到的是返回的所有 6 个链接。如果我搜索“添加一个”,我希望看到返回的前三个链接。如果我搜索“添加培训”,我希望只看到第 6 个链接返回。

目前,如果我搜索“添加”,所有 6 个链接都将被返回。但是,如果我在搜索框中添加任何其他单词和空格,我只会收到一条消息

““AZ”列表的此视图中没有要显示的项目。要添加新项目,请单击“新建”。”。

标签: javascriptsharepointsharepoint-2010

解决方案


嗨,我不确定我是否正确地描绘了这一点,但据我所知。

您有某种列表 Web 部件和一些硬编码的输入类型文本。

如果我是你而不是:

<input id="tbSearch" type="text"/>

我会过滤文本搜索类型的 Web 部件。然后我会通过连接将过滤器Web部件的参数发送到列表Web部件。

选择也是不必要的,因为它是另一种类型的过滤器 Web 部件调用选择过滤器。

尽管观看Choice Web Part Video 有点旧,但它也应该有助于文本 Web 过滤器,因为它类似。


推荐阅读