Я новичок в Sharepoint, будьте осторожны: -)
У меня есть список Sharepoint 2010 A-Z с несколькими столбцами, важным для этого вопроса является столбец URL с около 600 гиперссылками. Каждая из гиперссылок имеет осмысленное отображение описания, а не сам URL-адрес.
На одной из страниц моего сайта у меня есть веб-часть для просмотра списка A-Z, связанная с этим списком. Я настроил его так, чтобы одновременно отображалось только 30 записей из списка.
Что мне нужно сделать, так это предоставить пользователям способ поиска по всем 600 URL-адресам, чтобы найти то, что они ищут. Например, если они ввели в текстовое поле «Входящие документы», результаты должны возвращать любой URL, для которого в описании есть «входящий документ», т. Е. Поиск должен быть без учета регистра.
Я нашел некоторый код, который я добавил в веб-часть формы HTML на «странице поиска», которая создает поле поиска и должна возвращать список результатов поиска на той же странице, но, к сожалению, он работает только с отдельными ключевыми словами. Если я наберу "onboarding", это работает. Если я набираю «входящие документы», он ничего не возвращает.
Сначала поиск просматривал столбец URL и ничего не возвращал ни при каких условиях поиска.
Затем я попытался создать дополнительный столбец «NotesTest» в списке A-Z, который представляет собой столбец типа «одна строка текста», который содержит текстовые версии описаний гиперссылок. Затем я настроил код, чтобы вместо этого указать поиск в столбце NotesTest. Это дает возврат по поисковым словам, состоящим из одного слова, но ничего, кроме одного слова.
Код, который я имею в веб-части html-формы, выглядит следующим образом:
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 ссылок. Но если я добавлю дополнительные слова и пробелы в поле поиска, я просто получу сообщение
"Нет элементов, которые можно отобразить в этом представлении списка" A-Z ". Чтобы добавить новый элемент, нажмите" Новый ".".