在A-Z列表视图Web部件中搜索URL描述

时间:2019-06-11 14:08:27

标签: javascript sharepoint sharepoint-2010

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

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

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

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

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

首先,搜索是在查看URL列,并且在任何搜索条件下均未返回任何内容。

然后,我尝试在A-Z列表中创建另一个“ 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个链接。但是,如果我在搜索框中添加其他任何单词和空格,我只会收到一条消息

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

1 个答案:

答案 0 :(得分:0)

嗨,我不确定我是否理解正确,但是据我了解。

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

如果我是你,而不是:

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

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

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

尽管手表Choice Web Part Video有点旧,但由于它与文本Web过滤器类似,因此也应有所帮助。