如何在自定义搜索结果模块中以html显示DNN搜索结果对象的数组

时间:2018-08-18 15:08:47

标签: search dotnetnuke

我目前在自定义搜索结果模块中包含以下代码,以获取DNN搜索结果以及来自我们自己系统的结果。

如何从C#用HTML显示这些对象结果?

当前,我们的搜索结果模块仅通过ajax从我们的ERP系统中检索产品,并以网格模式显示它们。现在,我想在DNN本身的这些Grid结果的顶部显示页面搜索结果,因此这些将是页面上的关键字。

我在玩以下内容,但我认为我做得不正确:searchResults.Results [0] .Desciption?

我找不到例子

enter image description here

1 个答案:

答案 0 :(得分:0)

我已经使用了foreach函数来实现我想做的事情:

txtSearchQueryString.Text = GetQuery;

                var query = new SearchQuery
                {
                    PageSize =  50,
                    PageIndex = (1 > 0 ? 1 : 1),
                    SortField = SortFields.Relevance,
                    SortDirection = SortDirections.Descending,
                    KeyWords = GetQuery,
                    PortalIds = new List<int> { PortalSettings.PortalId },
                    WildCardSearch = false,
                };

                TotalPageResults = "0";
                var searchResults = SearchController.Instance.ModuleSearch(query);

                if(searchResults != null)
                {
                    TotalPageResults = searchResults.TotalHits.ToString();
                    var sb = new StringBuilder();
                    sb.AppendLine("<div class='page_results'><span class='page_results_text'>Page Results:</span></br>");
                    foreach(var result in searchResults.Results)
                    {
                        sb.AppendLine($"</br><span><a href='{result.Url}' class='page_results_link'>{result.Title}</a></span></br><span class='page_result_description'>{result.Description}</span></br><span class='page_results_date_modified'>Updated:{result.DisplayModifiedTime}</span></br>");
                    }
                    sb.AppendLine("</div>");

                    DNNSearchResuls = sb.ToString(); 
                }