Если вам нужна идея для этого, вы можете сделать следующее:
Создать HTML Дизайн в текстовом файле
- Это включает в себя создание html для поля ввода Search или любых других элементов управления, кнопку поиска и div для отображения результатов поиска.
- Загрузить этот файл где-нибудь на сайте (например, библиотека стилей / html) )
Запись Javascript
- Запись Javascript для выполнения проверки.
- Напишите событие клика для кнопки поиска. Используйте JSOM для извлечения элементов списка на основе CAML-запроса, который получает входные данные от элементов управления и извлекает элементы списка на основе указанных пользователем значений.
- В успешном обработчике вашей функции извлекайте идентификаторы для соответствующих элементов и используйте эти идентификаторы создать динамический c html для перенаправления на экранную форму (Подробности) элемента, например (
<a href="https://serverurl/lists/yourlist/DispForm.aspx?ID=[id-of-matched-item]"><span>[Item's Title]</span></a>
) - Заполните div (созданный в html) динамическим c html (например, $ ('# yourdivid'). html (Dynami cHTML));
- загрузить этот файл JS в любое место на вашем сайте (например, Библиотека стиля / JS )
- см. Этот файл JS в вашем HTML
Создание веб-части редактора контента
Go на страницу, где вы хотите разместить свой элемент управления поиском и редактировать страницу. Вставьте веб-часть редактора контента и в настройках веб-части обратитесь к файлу txt (html) и сохраните страницу. надеюсь, что это поможет
РЕДАКТИРОВАТЬ : чтобы извлечь элементы из списка с помощью запроса CAML, вы можете использовать JSOM
function GetSearchResults() { //search button click handler
// Get textboxes' text.. 'tboxProjectName' and 'tboxProjectCategories' are id's that you assign to textboxes in your html.
var projectNameVal = $('#tboxProjectName').val();
var projectCategoryVal = $('#tboxProjectCategory').val();
//Get SP Context
var context = new SP.ClientContext.get_current();
var web = context.get_web();
var list = web.get_lists().getByTitle("ListA");
var camlQuery = new SP.CamlQuery();
//you can modify query text according to your data types and applying operators different than <Contains> e.g. <Eq>, <Lt>, <Gt> etc.
var camlText = '<View><Query><Where><Or><Contains><FieldRef Name="Project_x0020_Name"/><Value Type="Text">' + projectNameVal +'</Value></Contains><Contains><FieldRef Name="Project_x0020_Category"/><Value Type="Text">' + projectCategoryVal +'</Value></Contains></Or></Where></Query></View>';
camlQuery.set_viewXml(camlText);
this.collListItem = list.getItems(camlQuery);
context.load(collListItem);
context.executeQueryAsync(getResultsSuccess,onFailure);
}
function getResultsSuccess() {
var listItem;
var html = '';
var dispFormUrl = "https://yourserver.com/lists/lista/dispform.aspx?ID="
var listEnumerator = collListItem.getEnumerator();
while (listEnumerator.moveNext()) {
listItem = listEnumerator.get_current();
html += '<a href = "'+dispFormurl+listItem.get_item("ID")+'"><span>'+listItem.get_item("Title")+'</a> <br />'
}
$('#yourdivID').html(html)
}
function onFailure(sender,args)
{
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}