⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 skin-reader.ascx

📁 community server 源码
💻 ASCX
📖 第 1 页 / 共 2 页
字号:
<%@ Control Language="c#" %>
<%@ Register TagPrefix="CS" Namespace="CommunityServer.Controls" Assembly="CommunityServer.Controls" %>
<%@ Register TagPrefix="CSR" Namespace="CommunityServer.Reader.Controls" Assembly="CommunityServer.Reader" %>
<%@ Register TagPrefix="CA" Namespace="ComponentArt.Web.UI" Assembly="ComponentArt.Web.UI" %>
<%@ Import Namespace="System.Xml" %>
<%@ Import NameSpace="CommunityServer.Reader.Components" %>
<%@ Import NameSpace="CommunityServer.Components" %>

<script runat="server" language="C#">
	public string GetFeedId(Object item)
	{
		FeedPost post = (FeedPost) item;
		return post.FeedId.ToString();
	}
	
	public string GetTitle(Object item)
	{
		FeedPost post = (FeedPost) item;
		return post.Title;
	}
	
	public string GetPostId(Object item)
	{
		FeedPost post = (FeedPost) item;
		return post.FeedPostId.ToString();
	}
	
	public string GetItemClass(Object item, string itemType)
	{
		FeedPost post = (FeedPost) item;
		bool hasRead = post.HasRead;		
		string itemClass = (itemType == "alt" ? "Alternate" : "") + "PostListingItem" + (hasRead == false ? "Unread" : "");
		return itemClass;
	}
	
	public string GetPostBody(object item)
	{
		FeedPost post = (FeedPost) item;
		int length = 300;
		string description = post.Description;
		
		if (Formatter.RemoveHtml(description, 0).Length > length)
			description = Formatter.RemoveHtml(description, 0).Substring(0, length) + "... [<a href=\"" + post.Link + "\" target=\"_blank\">read more</a>]";
		else
			description = Formatter.RemoveHtml(description, 0);

		return description;
	}
</script>

<script language="javascript">
function slResizeFolderListingPane(domElementId, newPaneHeight, newPaneWidth)
{
	var listing = document.getElementById('FeedReaderFolderListing');
	var header = document.getElementById('FeedReaderFolderListingHeader');
	if (listing && header)
	{
		try
		{
			listing.style.height = (newPaneHeight - parseInt(header.offsetHeight)) + 'px';
			
			<%=tvFolderList.ClientID%>.Render();
		}
		catch (err)
		{
		}
	}
}

function slResizePostListingPane(domElementId, newPaneHeight, newPaneWidth)
{
	var listing = document.getElementById('FeedReaderPostListing');
	var header = document.getElementById('FeedReaderPostListingHeader');
	if (listing && header)
	{
		try
		{
			listing.style.height = (newPaneHeight - parseInt(header.offsetHeight)) + 'px';
		}
		catch (err)
		{
		}
	}
}

var postDisplayPaneHeight = 300;
var postDisplayPaneWidth = 200;
function slResizePostDisplayPane(domElementId, newPaneHeight, newPaneWidth)
{
	postDisplayPaneHeight = newPaneHeight;
	postDisplayPaneWidth = newPaneWidth;
	slResizePostDisplayContents();	
}

function slResizePostDisplayContents()
{
	var container = document.getElementById('FeedReaderPostDisplayContainer');
	var body = document.getElementById('FeedReaderPostDisplayBody');
	var header = document.getElementById('FeedReaderPostDisplayHeader');

	if (container && body)
	{
		try
		{
			container.style.height = (postDisplayPaneHeight - 18) + 'px';
			container.style.width = (postDisplayPaneWidth - 18) + 'px';
			if (header)
			{
				header.style.width = (postDisplayPaneWidth - 36) + 'px';
				body.style.width = (postDisplayPaneWidth - 36) + 'px';
				body.style.height = (postDisplayPaneHeight - parseInt(header.offsetHeight) - 56) + 'px';
			}
			else
			{
				body.style.height = (postDisplayPaneHeight - 36) + 'px';
				body.style.width = (postDisplayPaneWidth - 36) + 'px';
			}
		} 
		catch (err)
		{
		}
	}
}

function classSwap(divObject, unreadClassName, readClassName)
{
	if (divObject.className != 'PostListingItemSelected')
	{
		if (divObject.className.indexOf('Unread') > 0)
			divObject.className = unreadClassName;
		else
			divObject.className = readClassName;
	}
}

function highlightRow(divObject)
{
	classSwap(divObject, 'PostListingItemHoverUnread', 'PostListingItemHover');
}

function unhighlightRow(divObject)
{
	classSwap(divObject, 'PostListingItemUnread', 'PostListingItem');
}

function highlightAltRow(divObject)
{
	classSwap(divObject, 'AlternatePostListingItemHoverUnread', 'AlternatePostListingItemHover');
}

function unhighlightAltRow(divObject)
{
	classSwap(divObject, 'AlternatePostListingItemUnread', 'AlternatePostListingItem');
}

var prevSelectedPostListDiv = null;
var prevSelectedPostListDivType = null;
function selectRow(divObject, feedPostId)
{
	if (divObject.className.indexOf('Selected') < 0)
	{
		var markRead = divObject.className.indexOf('Unread') > 0;
	
		if (prevSelectedPostListDiv != null)
			prevSelectedPostListDiv.className = (prevSelectedPostListDivType == 'alt' ? 'AlternatePostListingItem' : 'PostListingItem'); 

		prevSelectedPostListDiv = divObject;
		prevSelectedPostListDivType = (divObject.className.indexOf('Alternate') >= 0 ? 'alt' : 'item');
		
		divObject.className = 'PostListingItemSelected';
		
		<%=this.Parent.ClientID%>.SelectPost(feedPostId, markRead);
	}
}

</script>

<CA:Splitter runat="server" ID="Splitter1" FillHeight="true" HeightAdjustment="0" FillWidth="true" WidthAdjustment="78">
	<Layouts>
		<CA:SplitterLayout>
			<Panes 
				SplitterBarCollapseImageUrl="../themes/default/images/readerimages/splitter_col.gif" 
				SplitterBarExpandImageUrl="../themes/default/images/readerimages/splitter_exp.gif" 
				SplitterBarCollapseImageWidth="6" 
				SplitterBarCollapseImageHeight="116" 
				SplitterBarCollapsedCssClass="SplitterBarCollapsed"
				SplitterBarCssClass="SplitterBar" 
				SplitterBarActiveCssClass="ActiveSplitterBar" 
				SplitterBarWidth="5" 
				Orientation="Horizontal">
				<CA:SplitterPane 
					PaneContentId="TreeViewContent" 
					ClientSideOnResize="slResizeFolderListingPane"
					Width="220" 
					MinWidth="100" 
					CssClass="SplitterPane" />
				<CA:SplitterPane 
					PaneContentId="GridContent" 
					ClientSideOnResize="slResizePostListingPane"
					Width="250" 
					MinWidth="100" 
					CssClass="SplitterPane" />
				<CA:SplitterPane 
					PaneContentId="DetailsContent" 
					ClientSideOnResize="slResizePostDisplayPane"
					CssClass="SplitterPane" />
			</Panes>
		</CA:SplitterLayout>
	</Layouts>
	<Content>
		<CA:SplitterPaneContent id="TreeViewContent">
			<div class="FolderListHeading" id="FeedReaderFolderListingHeader"><CSR:ResourceControl ResourceName="reader_folder_list_heading" runat="server" ID="Resourcecontrol1" NAME="Resourcecontrol1"/></div>
			<div class="FolderListingContainer" id="FeedReaderFolderListing">
				<!-- Main tree view listing -->
				<CA:TreeView id="tvFolderList" 
					AutoPostBackOnSelect="False"
					NodeEditingEnabled="True"
					DragAndDropEnabled="True"
					KeyboardEnabled="True"
					ExpandNodeOnSelect="True"
					CollapseNodeOnSelect="False"
					CssClass="TreeView" 
					NodeCssClass="TreeNode" 
					SelectedNodeCssClass="SelectedTreeNode" 
					HoverNodeCssClass="HoverTreeNode"
					LineImageWidth="19" 
					LineImageHeight="20"
					DefaultImageWidth="16" 
					DefaultImageHeight="16"
					NodeLabelPadding="3"
					ImagesBaseUrl="../themes/default/images/readerimages/"
					ParentNodeImageUrl="images/folder.gif" 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -