温馨提示:代码在线浏览功能只能做为源码浏览参考,如果想更进一步了解该代码请下载:SpaceBuilder v1.1源代码
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.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
/// <summary> 20
/// 主站博客导航 21
/// </summary> 22
public class ChannelBlogNavigation : TemplatedWebControl 23
{ 24
/// <summary> 25
/// 控件初始化时,父类会调用这个方法 26
/// </summary> 27
/// <param name="e"></param> 28
protected override void OnInit(EventArgs e) 29
{ 30
if (SkinName == null) 31
ExternalSkinFileName = "Blogs/Skin-ChannelBlogNavigation.ascx"; 32
else 33
ExternalSkinFileName = SkinName; 34
35
base.OnInit(e); 36
} 37
38
/// <summary> 39
/// 控件被加载时,会先调用这个方法 40
/// </summary> 41
/// <param name="e"></param> 42
protected override void OnLoad(EventArgs e) 43
{ 44
base.OnLoad(e); 45
EnsureChildControls(); 46
47
if (SBContext.Current.RawUrl.IndexOf("BlogRanks.aspx") > 0) 48
SeletedMenu = BlogNavigationType.BlogRanks; 49
50
if (SBContext.Current.RawUrl.IndexOf("PostRanks.aspx") > 0) 51
SeletedMenu = BlogNavigationType.WeblogPostRanks; 52
53
if (SBContext.Current.RawUrl.IndexOf("BlogTagMap.aspx") > 0) 54
SeletedMenu = BlogNavigationType.BlogTags; 55
56
if (!Page.IsPostBack) 57
{ 58
PostFullTextQuery query = new PostFullTextQuery(); 59
query.ConvertFromQueryString(); 60
postKeyword.Text = query.PostKeyword; 61
} 62
63
InitMenu(); 64
MenuApplyStyleSheet(); 65
} 66
67
Child Controls 83
84
/// <summary> 85
/// 加载子控件,父类加载皮肤文件时会调用这个方法 86
/// </summary> 87
protected override void AttachChildControls() 88
{ 89
blogHome = FindControl("BlogHome") as HyperLink; 90
weblogPostRanks = FindControl("WeblogPostRanks") as HyperLink; 91
blogRanks = FindControl("BlogRanks") as HyperLink; 92
blogTags = FindControl("BlogTags") as HyperLink; 93
myBlog = FindControl("MyBlog") as HyperLink; 94
95
postKeyword = FindControl("PostKeyword") as TextBox; 96
searchButton = FindControl("SearchButton") as Button; 97
searchButton.Click += new EventHandler(SearchButton_Click); 98
} 99
/// <summary> 100
/// 子控件初始化设置 101
/// </summary> 102
private void InitMenu() 103
{ 104
blogHome.NavigateUrl = ChannelUrls.Instance().BlogHome(); 105
weblogPostRanks.NavigateUrl = ChannelUrls.Instance().WeblogPostRanks((int)BlogThreadSortBy.MostRecent); 106
blogRanks.NavigateUrl = ChannelUrls.Instance().BlogRanks((int)SortBlogsBy.Points); 107
blogTags.NavigateUrl = ChannelUrls.Instance().BlogTagMap(); 108
109
if (!SBContext.Current.User.IsAnonymous && SBContext.Current.User.UserType == UserType.PersonUser) 110
myBlog.NavigateUrl = UserUrls.Instance().BlogHome(SBContext.Current.User.UserName); 111
else 112
myBlog.Visible = false; 113
} 114
115
/// <summary> 116
/// 根据当前页面设置菜单样式 117
/// </summary> 118
private void MenuApplyStyleSheet() 119
{ 120
switch (SeletedMenu) 121
{ 122
case BlogNavigationType.BlogHome: 123
blogHome.CssClass = "selectedChannelNavigationMenu"; 124
break; 125
case BlogNavigationType.WeblogPostRanks: 126
weblogPostRanks.CssClass = "selectedChannelNavigationMenu"; 127
break; 128
case BlogNavigationType.BlogRanks: 129
blogRanks.CssClass = "selectedChannelNavigationMenu"; 130
break; 131
case BlogNavigationType.BlogTags: 132
blogTags.CssClass = "selectedChannelNavigationMenu"; 133
break; 134
case BlogNavigationType.MyBlog: 135
myBlog.CssClass = "selectedChannelNavigationMenu"; 136
break; 137
} 138
} 139
140
/// <summary> 141
/// 搜索按钮点击事件处理程序 142
/// </summary> 143
/// <param name="sender"></param> 144
/// <param name="e"></param> 145
protected void SearchButton_Click(object sender, EventArgs e) 146
{ 147
PostFullTextQuery query = new PostFullTextQuery(); 148
query.FullTextSearchType = FullTextSearchType.Blog; 149
query.PostKeyword = postKeyword.Text; 150
string searchPostsUrl = Globals.FullPathForSearchSite(ChannelUrls.Instance().BlogSearchResults() + "?" + query.ConvertToQueryString()); 151
Context.Response.Redirect(searchPostsUrl, true); 152
} 153
154
private BlogNavigationType seletedMenu; 155
public BlogNavigationType SeletedMenu 156
{ 157
get { return seletedMenu; } 158
set { seletedMenu = value; } 159
} 160
161
/// <summary> 162
/// 频道菜单项 163
/// </summary> 164
public enum BlogNavigationType 165
{ 166
BlogHome, 167
WeblogPostRanks, 168
BlogRanks, 169
BlogTags, 170
MyBlog, 171
} 172
173
} 174
175
} 176
177





}