温馨提示:代码在线浏览功能只能做为源码浏览参考,如果想更进一步了解该代码请下载:SpaceBuilder v1.0正式版源码
1//------------------------------------------------------------------------------ 2
// <copyright company="Tunynet"> 3
// Copyright (c) Tunynet Network Technology Co., Ltd. All rights reserved. 4
// </copyright> 5
//------------------------------------------------------------------------------ 6
7
using System; 8
using System.Collections.Generic; 9
using System.Text; 10
using SpaceBuilder.Controls.BaseClasses; 11
using System.Web.UI.WebControls; 12
using SpaceBuilder.Blogs.Components; 13
using SpaceBuilder.Components; 14
using SpaceBuilder.Utils; 15
using SpaceBuilder.Posts.Components; 16
17
namespace SpaceBuilder.Blogs.Controls 18
{ 19
public class ChannelBlogNavigation : TemplatedWebControl 20
{ 21
protected override void OnInit(EventArgs e) 22
{ 23
if (SkinName == null) 24
ExternalSkinFileName = "Blogs/Skin-ChannelBlogNavigation.ascx"; 25
else 26
ExternalSkinFileName = SkinName; 27
28
base.OnInit(e); 29
} 30
31
protected override void OnLoad(EventArgs e) 32
{ 33
base.OnLoad(e); 34
EnsureChildControls(); 35
36
if (SBContext.Current.RawUrl.IndexOf("BlogRanks.aspx") > 0) 37
SeletedMenu = BlogNavigationType.BlogRanks; 38
39
if (SBContext.Current.RawUrl.IndexOf("PostRanks.aspx") > 0) 40
SeletedMenu = BlogNavigationType.WeblogPostRanks; 41
42
if (SBContext.Current.RawUrl.IndexOf("BlogTagMap.aspx") > 0) 43
SeletedMenu = BlogNavigationType.BlogTags; 44
45
if (!Page.IsPostBack) 46
{ 47
PostFullTextQuery query = new PostFullTextQuery(); 48
query.ConvertFromQueryString(); 49
postKeyword.Text = query.PostKeyword; 50
} 51
52
InitMenu(); 53
MenuApplyStyleSheet(); 54
} 55
56
Child Controls 68
69
protected override void AttachChildControls() 70
{ 71
blogHome = FindControl("BlogHome") as HyperLink; 72
weblogPostRanks = FindControl("WeblogPostRanks") as HyperLink; 73
blogRanks = FindControl("BlogRanks") as HyperLink; 74
blogTags = FindControl("BlogTags") as HyperLink; 75
myBlog = FindControl("MyBlog") as HyperLink; 76
77
postKeyword = FindControl("PostKeyword") as TextBox; 78
searchButton = FindControl("SearchButton") as Button; 79
searchButton.Click += new EventHandler(SearchButton_Click); 80
} 81
82
private void InitMenu() 83
{ 84
blogHome.NavigateUrl = ChannelUrls.Instance().BlogHome(); 85
weblogPostRanks.NavigateUrl = ChannelUrls.Instance().WeblogPostRanks((int)BlogThreadSortBy.MostRecent); 86
blogRanks.NavigateUrl = ChannelUrls.Instance().BlogRanks((int)SortBlogsBy.Points); 87
blogTags.NavigateUrl = ChannelUrls.Instance().BlogTagMap(); 88
89
if (!SBContext.Current.User.IsAnonymous && SBContext.Current.User.UserType == UserType.PersonUser) 90
myBlog.NavigateUrl = UserUrls.Instance().BlogHome(SBContext.Current.User.UserName); 91
else 92
myBlog.Visible = false; 93
} 94
95
/// <summary> 96
/// 根据当前页面设置菜单样式 97
/// </summary> 98
private void MenuApplyStyleSheet() 99
{ 100
switch (SeletedMenu) 101
{ 102
case BlogNavigationType.BlogHome: 103
blogHome.CssClass = "selectedChannelNavigationMenu"; 104
break; 105
case BlogNavigationType.WeblogPostRanks: 106
weblogPostRanks.CssClass = "selectedChannelNavigationMenu"; 107
break; 108
case BlogNavigationType.BlogRanks: 109
blogRanks.CssClass = "selectedChannelNavigationMenu"; 110
break; 111
case BlogNavigationType.BlogTags: 112
blogTags.CssClass = "selectedChannelNavigationMenu"; 113
break; 114
case BlogNavigationType.MyBlog: 115
myBlog.CssClass = "selectedChannelNavigationMenu"; 116
break; 117
} 118
} 119
120
protected void SearchButton_Click(object sender, EventArgs e) 121
{ 122
PostFullTextQuery query = new PostFullTextQuery(); 123
query.FullTextSearchType = FullTextSearchType.Blog; 124
query.PostKeyword = postKeyword.Text; 125
string searchPostsUrl = Globals.FullPathForSearchSite(ChannelUrls.Instance().BlogSearchResults() + "?" + query.ConvertToQueryString()); 126
Context.Response.Redirect(searchPostsUrl, true); 127
} 128
129
private BlogNavigationType seletedMenu; 130
public BlogNavigationType SeletedMenu 131
{ 132
get { return seletedMenu; } 133
set { seletedMenu = value; } 134
} 135
136
/// <summary> 137
/// 频道菜单项 138
/// </summary> 139
public enum BlogNavigationType 140
{ 141
BlogHome, 142
WeblogPostRanks, 143
BlogRanks, 144
BlogTags, 145
MyBlog, 146
} 147
148
} 149
150
} 151
152





}
}