温馨提示:代码在线浏览功能只能做为源码浏览参考,如果想更进一步了解该代码请下载:SpaceBuilder v1.1源代码
当前文件:
SpaceBuider11/BasicWebControls/Channel/Search/BookmarkSearchResults.cs[5K,2009-6-12 11:54:32],打开代码结构图
SpaceBuider11/BasicWebControls/Channel/Search/BookmarkSearchResults.cs[5K,2009-6-12 11:54:32],打开代码结构图1//------------------------------------------------------------------------------ 2
// <copyright company="Tunynet"> 3
// Copyright (c) Tunynet Inc. All rights reserved. 4
// </copyright> 5
//------------------------------------------------------------------------------ 6
7
using System; 8
using System.Collections.Generic; 9
using System.Text; 10
using SpaceBuilder.Components; 11
using SpaceBuilder.Controls.Utils; 12
using System.Web.UI.HtmlControls; 13
using System.Web.UI.WebControls; 14
using SpaceBuilder.Bookmarks.Components; 15
using TunyNet.Data.Utils; 16
using SpaceBuilder.Bookmarks.Providers; 17
using TunyNet.Utils; 18
using SpaceBuilder.Bookmarks; 19
using SpaceBuilder.Utils; 20
using SpaceBuilder.Controls.BaseClasses; 21
22
namespace SpaceBuilder.Search.Controls 23
{ 24
/// <summary> 25
/// 显示网摘搜索结果 26
/// </summary> 27
public class BookmarkSearchResults : TemplatedWebControl 28
{ 29
SBContext wlContext; 30
31
protected override void OnInit(EventArgs e) 32
{ 33
if (SkinName == null) 34
ExternalSkinFileName = "Searchs/Skin-BookmarkSearchResults.ascx"; 35
else 36
ExternalSkinFileName = SkinName; 37
38
wlContext = SBContext.Current; 39
base.OnInit(e); 40
} 41
42
protected override void OnLoad(EventArgs e) 43
{ 44
base.OnLoad(e); 45
if (!Page.IsPostBack) 46
DataBind(); 47
} 48
49
public override void DataBind() 50
{ 51
base.DataBind(); 52
BindData(); 53
} 54
55
Child Controls 78
79
/// <summary> 80
/// 附加子控件 81
/// </summary> 82
protected override void AttachChildControls() 83
{ 84
statusMessage = FindControl("StatusMessage") as StatusMessage; 85
86
noResultsDiv = FindControl("NoResultsDiv") as HtmlControl; 87
listPostsDiv = FindControl("ListPostsDiv") as HtmlControl; 88
searchHint = FindControl("SearchHint") as Literal; 89
90
bookmarksRepeater = FindControl("BookmarksRepeater") as Repeater; 91
pager = FindControl("Pager") as Pager; 92
93
if (bookmarksRepeater != null) 94
bookmarksRepeater.ItemDataBound += new RepeaterItemEventHandler(PostsRepeater_ItemDataBound); 95
96
} 97
98
void BindData() 99
{ 100
BookmarkFullTextQuery query = new BookmarkFullTextQuery(); 101
query.ConvertFromQueryString(); 102
if (query.IsValid()) 103
{ 104
query.PageSize = 10; 105
query.PageIndex = pager.PageIndex; 106
107
SearchResultDataSet<Bookmark> pds = BookmarkSearchProvider.Instance().Search(query); 108
bookmarksRepeater.DataSource = pds.Records; 109
bookmarksRepeater.DataBind(); 110
111
if (pds.TotalRecords > 0) 112
{ 113
searchHint.Text = "约有 <span class='stress'>" + pds.TotalRecords + " </span>个网摘满足搜索条件,搜索用时 " + pds.SearchDuration + " 秒"; 114
115
pager.TotalRecords = pds.TotalRecords; 116
pager.PageSize = query.PageSize; 117
} 118
else 119
{ 120
noResultsDiv.Visible = true; 121
listPostsDiv.Visible = false; 122
} 123
} 124
else 125
{ 126
listPostsDiv.Visible = false; 127
statusMessage.Visible = true; 128
statusMessage.MessageType = StatusMessageType.Error; 129
statusMessage.Text = "请填写您的搜索条件,再进行搜索"; 130
} 131
} 132
133
private void PostsRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e) 134
{ 135
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 136
{ 137
Bookmark bookmark = e.Item.DataItem as Bookmark; 138
if (bookmark != null) 139
{ 140
HyperLink title = e.Item.FindControl("Title") as HyperLink; 141
if (title != null) 142
{ 143
title.Text = bookmark.Title; 144
title.NavigateUrl = ChannelUrls.Instance().ShowBookmark(bookmark.BookmarkID); 145
title.Attributes["target"] = "_blank"; 146
} 147
148
Literal brief = e.Item.FindControl("Brief") as Literal; 149
if (brief != null) 150
brief.Text = bookmark.Brief; 151
152
HyperLink author = e.Item.FindControl("Author") as HyperLink; 153
if (author != null) 154
{ 155
author.Text = bookmark.Author; 156
author.NavigateUrl = UserUrls.Instance().UserChannelHome(bookmark.UserID, UserDomainMenuType.Profile); 157
author.Attributes["target"] = "_blank"; 158
} 159
160
Literal createDate = e.Item.FindControl("CreateDate") as Literal; 161
if (createDate != null) 162
createDate.Text = Formatter.FormatDate(bookmark.CreateDate); 163
} 164
} 165
} 166
167
} 168
} 169






}