2010-11-17 86 views
2

我的僱主將他們的內部門戶切換到SharePoint。之前的門戶網站高度使用的功能之一是允許部分名稱的「人員搜索」。 SharePoint 2007默認使用的關鍵字搜索僅與搜索條件中給出的確切詞相匹配。它可以進行全文搜索,但必須提供屬性名稱,例如「名字:湯姆」(當然沒有引號)。這適用於程序化解決方案,但不適用於最終用戶。使用部分名稱在SharePoint中進行人員搜索

在SharePoint 2007中有沒有一種方法可以讓用戶使用部分名稱搜索人員?

回答

2

我發現這個解決方案對我們來說工作得很好。

將ContentEditor Web部件添加到目標頁面並轉到HTML編輯器按鈕。添加以下HTML代碼。它創建兩個輸入字段(名字/姓氏),然後創建一個查詢,其中包含的搜索項作爲屬性搜索將調用全文搜索。

注意:您需要將搜索結果頁面替換爲適合您的配置的位置。

<script language="javascript"> 
//function to handle enter on keyboard 
function txtWildPeopleFinder_KeyDown(e) 
{ 
    if (e.keyCode == 13 || e.keyCode==10) 
    { 
    e.returnValue=false; 
    DoWildPeopleSearch(); 
    return false; 
    } 
    else 
    return true; 
} 
//escape apostrophes in search strings 
function escapestr(str) 
{ 
return str.replace("'","%22"); 
} 

//search function 
function DoWildPeopleSearch() 
{ 
var firstname = escapestr(document.all["firstname"].value); 
var lastname = escapestr(document.all["lastname"].value); 
var url; 

//search on last name 
if(firstname == "") 
{ 
url = "/searchcenter/Pages/peopleresults.aspx?k=LastName%3A" + lastname; 
window.location=url; 
return; 
} 

//search on first name 
if(lastname == "") 
{ 
url = "/searchcenter/Pages/peopleresults.aspx?k=FirstName%3A" + firstname; 
window.location=url; 
return; 
} 

//first and last 
url = "/searchcenter/Pages/peopleresults.aspx?k=lastname%3A" + lastname + "%20FirstName%3A" + firstname; 
window.location=url; 
return; 
} 
</script> 

<table cellpadding="2" cellspacing="0" border="0" width="100%" ID="Table3"> 
<tr> 
    <td width="80" nowrap> 
    First Name: 
    </td> 
    <td width="100%"> 
    <input size="20" maxlength="100" id="firstname" name="firstname" type="text" onkeydown="txtWildPeopleFinder_KeyDown(event)"> 
    </td> 
</tr> 
<tr> 
    <td width="80" nowrap> 
    Last Name: 
    </td> 
    <td> 
    <input size="20" maxlength="100" id="lastname" name="lastname" type="text" onkeydown="txtWildPeopleFinder_KeyDown(event)"> 
    </td> 
</tr> 
<tr> 
    <td> &nbsp; </td> 
    <td> 
    <input type="button" onclick="DoWildPeopleSearch()" value="Search"> 
    </td> 
</tr> 

</table>