поиск в списке sharepoint с использованием jQuery - PullRequest
0 голосов
/ 18 февраля 2020

Мне нужно реализовать поиск на домашней странице сайта SharePoint 2013, где в результатах поиска должно быть, вероятно, из списка с именем списка ListA (с именем столбца Имя проекта и Категория проекта). Результаты поиска должны быть только из двух столбцов, упомянутых выше. После того, как результаты поиска появятся, после выбора конкретного результата поиска он должен перенаправить на свою конкретную страницу сведений (Projectdetails.aspx)

Мы пытаемся использовать jQuery/REST API в SharePoint Designer 2013.

Пожалуйста, дайте мне знать для получения дополнительной информации. Заранее спасибо!

1 Ответ

1 голос
/ 18 февраля 2020

Если вам нужна идея для этого, вы можете сделать следующее:

Создать 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());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...