现在的位置: 首页 > 综合 > 正文

SharePoint 2013 客户端模型(Client Object Model) 调用搜索(Query Search)

2013年04月25日 ⁄ 综合 ⁄ 共 1508字 ⁄ 字号 评论关闭

SharePoint 2013 客户端模型(Client Object Model) 调用搜索(Query Search):

SharePoint 2013 提供客户端调用Search 模型的方式,方便把SharePoint 搜索和其他系统整合。

下面说明如何在一个Asp.net程序中调用SharePoint 搜索:

 1. 使用VS2010 新建一个 Asp.net Web Application 项目

 

  2. 在该项目中添加如下引用

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.dll

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.Runtime.dll

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.Search.dll

 

   3. 新建一个Web form,使用默认文件名 WebForm1.aspx

  

   4. 在web form提添加如下控件

         a. 添加一个TextBox (给用户输入搜索关键字用,命名为txtSearchBox)

         b. 添加一个Button, text 改为Search , 用于提交搜索查询

         c. 添加一个GridView,命名为 resultGrid, 用于显示查询结果

     

 

  5. 给Button 添加点击事件,代码如下:

     

using (ClientContext clientContext = new ClientContext("http://SharePointServer/SubSite"))
            {
                KeywordQuery keywordQuery = new KeywordQuery(clientContext);
                keywordQuery.QueryText = txtSearchBox.Text;
                SearchExecutor searchExecutor = new SearchExecutor(clientContext);
                ClientResult<ResultTableCollection> results = searchExecutor.ExecuteQuery(keywordQuery);
                clientContext.ExecuteQuery();           

                DataTable table = new DataTable();
                DataColumn titleCol = new DataColumn("Title");
                table.Columns.Add(titleCol);
                DataColumn pathCol = new DataColumn("Path");
                table.Columns.Add(pathCol);

                foreach(var resultRow in results.Value[0].ResultRows)
                {
                    DataRow row = table.NewRow();
                    row["Title"] = resultRow["Title"];
                    row["Path"] = resultRow["Path"];
                    table.Rows.Add(row);
                }

                this.resultGrid.DataSource = table;
                this.resultGrid.DataBind();
            }

 

   

抱歉!评论已关闭.