Asp.net源码专业站
首页->博客空间->SpaceBuilder v1.1源代码>>BasicWebControls/Channel/Search/ForumSearchResults.cs>>源码在线查看
温馨提示:代码在线浏览功能只能做为源码浏览参考,如果想更进一步了解该代码请下载:SpaceBuilder v1.1源代码
当前文件:文件类型 SpaceBuider11/BasicWebControls/Channel/Search/ForumSearchResults.cs[7K,2009-6-12 11:54:32]打开代码结构图
普通视图
		            
1//------------------------------------------------------------------------------ 2// <copyright company="Tunynet"> 3// Copyright (c) Tunynet Inc. All rights reserved. 4// </copyright> 5//------------------------------------------------------------------------------ 6 7using System; 8using System.Collections.Generic; 9using System.Text; 10using SpaceBuilder.Controls.BaseClasses; 11using SpaceBuilder.Components; 12using SpaceBuilder.Controls.Utils; 13using System.Web.UI.HtmlControls; 14using System.Web.UI.WebControls; 15using SpaceBuilder.Utils; 16using SpaceBuilder.Clubs.Components; 17using TunyNet.Data.Utils; 18using TunyNet.Utils; 19using SpaceBuilder.Posts.Components; 20using SpaceBuilder.Posts.Providers; 21 22namespace SpaceBuilder.Search.Controls 23{ 24 /// <summary> 25 /// 显示论坛信息搜索结果 26 /// </summary> 27 public class ForumSearchResults : TemplatedWebControl 28 { 29 SBContext sbContext; 30 31 protected override void OnInit(EventArgs e) 32 { 33 if (SkinName == null) 34 ExternalSkinFileName = "Searchs/Skin-ForumSearchResults.ascx"; 35 else 36 ExternalSkinFileName = SkinName; 37 38 sbContext = 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 56 Child Controls 81 82 /// <summary> 83 /// 附加子控件 84 /// </summary> 85 protected override void AttachChildControls() 86 { 87 statusMessage = FindControl("StatusMessage") as StatusMessage; 88 89 noResultsDiv = FindControl("NoResultsDiv") as HtmlControl; 90 listPostsDiv = FindControl("ListPostsDiv") as HtmlControl; 91 searchHint = FindControl("SearchHint") as Literal; 92 93 postsRepeater = FindControl("PostsRepeater") as Repeater; 94 pager = FindControl("Pager") as Pager; 95 96 if (postsRepeater != null) 97 postsRepeater.ItemDataBound += new RepeaterItemEventHandler(PostsRepeater_ItemDataBound); 98 99 } 100 101 void BindData() 102 { 103 PostFullTextQuery query = new PostFullTextQuery(); 104 query.ConvertFromQueryString(); 105 if (query.IsValid()) 106 { 107 query.PageSize = 10; 108 query.PageIndex = pager.PageIndex; 109 110 SearchResultDataSet<PostSearchItem> pds = PostSearchProvider.Instance().Search(query); 111 postsRepeater.DataSource = pds.Records; 112 postsRepeater.DataBind(); 113 114 if (pds.TotalRecords > 0) 115 { 116 searchHint.Text = "约有 <span class='stress'>" + pds.TotalRecords + " </span>个帖子满足搜索条件,搜索用时 " + pds.SearchDuration + ""; 117 118 pager.TotalRecords = pds.TotalRecords; 119 pager.PageSize = query.PageSize; 120 } 121 else 122 { 123 noResultsDiv.Visible = true; 124 listPostsDiv.Visible = false; 125 } 126 } 127 else 128 { 129 listPostsDiv.Visible = false; 130 statusMessage.Visible = true; 131 statusMessage.MessageType = StatusMessageType.Error; 132 statusMessage.Text = "请填写您的搜索条件,再进行搜索"; 133 } 134 } 135 136 private void PostsRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e) 137 { 138 if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 139 { 140 PostSearchItem item = e.Item.DataItem as PostSearchItem; 141 if (item != null) 142 { 143 HyperLink subject = e.Item.FindControl("Subject") as HyperLink; 144 if (subject != null) 145 { 146 subject.Text = item.Subject; 147 if (!ValueHelper.IsNullOrEmpty(item.PostUrl)) 148 { 149 subject.NavigateUrl = Globals.FullPathForMainSite(item.PostUrl); 150 subject.Attributes["target"] = "_blank"; 151 } 152 } 153 154 Literal body = e.Item.FindControl("Body") as Literal; 155 if (body != null) 156 body.Text = item.Body; 157 158 159 HtmlContainerControl authorBlock = e.Item.FindControl("AuthorBlock") as HtmlContainerControl; 160 if (item.ClubID > 0) 161 { 162 authorBlock.Visible = true; 163 HyperLink author = e.Item.FindControl("Author") as HyperLink; 164 if (author != null) 165 { 166 author.Text = item.Author; 167 if (!ValueHelper.IsNullOrEmpty(item.UserProfileUrl)) 168 { 169 author.NavigateUrl = Globals.FullPathForMainSite(item.UserProfileUrl); 170 author.Attributes["target"] = "_blank"; 171 } 172 } 173 } 174 175 Literal lastUpdatedDate = e.Item.FindControl("LastUpdatedDate") as Literal; 176 if (lastUpdatedDate != null) 177 lastUpdatedDate.Text = Formatter.FormatDate(item.LastUpdatedDate); 178 179 HtmlContainerControl clubNameBlock = e.Item.FindControl("ClubNameBlock") as HtmlContainerControl; 180 if (item.ClubID > 0) 181 { 182 clubNameBlock.Visible = true; 183 HyperLink clubName = e.Item.FindControl("ClubName") as HyperLink; 184 if (clubName != null && !ValueHelper.IsNullOrEmpty(item.ClubName)) 185 { 186 clubName.Text = item.ClubName; 187 if (item.ClubID > 0) 188 { 189 clubName.NavigateUrl = ClubUrls.Instance().ClubDomainHome(item.ClubID); 190 clubName.Attributes["target"] = "_blank"; 191 } 192 } 193 } 194 195 } 196 } 197 } 198 199 } 200} 201
还没有找到您心仪的内容?请用.net源码大搜捕
代码片断 打包下载该项目完整源码:SpaceBuilder v1.1源代码
51Aspx.com 版权所有 CopyRight © 2006-2010. 京ICP备06046876号 本站法律顾问:ITlaw-庄毅雄律师
返回顶部
客户服务:点击这里进行客户咨询 业务合作:点击这里洽谈业务合作 合作热线:010-68880146