簡體   English   中英

使用 jQuery 在共享點列表中搜索

[英]search in sharepoint list using jQuery

我需要在 SharePoint 2013 站點主頁中實現搜索,其中搜索結果可能來自列表名稱為ListA (列名稱為項目名稱和項目類別)的列表。 搜索結果應該只來自上面提到的兩列。 搜索結果出現后,選擇特定搜索結果后,應Projectdetails.aspx到其特定詳細信息頁面( Projectdetails.aspx

我們正在嘗試在 SharePoint Designer 2013 中使用jQuery/REST API。

請讓我知道任何進一步的信息。 提前致謝!

如果您需要一個想法來做到這一點,您可以執行以下操作:

在 txt 文件中創建 HTML 設計

  • 這包括為搜索輸入框或任何其他控件、搜索按鈕和顯示搜索結果的 div 創建 html。
  • 將此文件上傳到站點的某個位置(例如樣式庫/html)
  • ——

編寫Javascript

  • 編寫 Javascript 來執行驗證。
  • 為搜索按鈕編寫點擊事件。 使用 JSOM 根據 CAML 查詢檢索列表項,該查詢從控件獲取輸入並根據用戶指定的值檢索列表項。
  • 在您的函數的成功處理程序中,檢索匹配項目的 id,並使用這些 id 創建動態 html 以重定向到項目的顯示表單(詳細信息),例如( <a href="https://serverurl/lists/yourlist/DispForm.aspx?ID=[id-of-matched-item]"><span>[Item's Title]</span></a> )
  • 使用動態 html(例如 $('#yourdivid').html(dynamicHTML)) 填充 div(您在 html 中創建的);
  • 將此 JS 文件上傳到您網站上的某個位置(例如樣式庫/JS)
  • 在你的 HTML 中引用這個 JS 文件

創建內容編輯器 Webpart

轉到要放置搜索控件的頁面並編輯該頁面。 插入一個Content editor webpart,在webpart的配置中,引用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());
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM