新闻列表控件+新闻控件+幻灯片控件

最近在开发网站项目,为了偷懒在网上找了几个新闻列表控件,但是用起来感觉差强人意,不是bug太多就是功能不够强大,在应付新闻列表各种样式时更感到有心无力。于是自己动手写了三个经常用到的控件,在使用过程中感觉还不错,现上传与各位分享,也希望能与各位一起测试改进。

一、控件dll

1、YXL.Controls.dll ,控件dll,通过工具箱进行加载

2、YXL.DbHelper.dll,数据库操作类

二、控件功能

1、新闻列表控件

(1)支持分页功能

(2)支持自定义列表内容,扩展性强

(3)支持列表前缀,自定义前缀数

(4)支持列表后缀,自定义后缀数

(5)支持格式化时间 

(6)支持列表滚动,上下左右滚动方式

(7)支持列表前后缀断言显示

(8)支持列表内容过滤

2、新闻控件

(1)支持新闻图片

(2)支持新闻标题、信息、内容格式化

(3)支持自定义关闭按钮

(4)支持上下篇新闻

(5)支持自定义上下篇显示方式

(6)支持新闻标题、内容过滤

3、幻灯片控件(特注:此控件内封装了jQuery.KinSlideshow幻灯片插件,感谢此作者,特此声明)

(1)支持标题长度截取

(2)自定义切换模式

(3)自定义切换方向

三、示例

1、新闻列表控件

 

 HTML:

 

     <YXL:NewsList ID="NewsList1" runat="server" ConnectionStringName="SqlServer2" TableName="News"
        PrimaryKey
="NewsId" RepeatDirection="Vertical" ListCss="ListCss" Width="600">
        
<News ShowNews="true" Format="<a target='_blank' href='News.aspx?Id={0}'>{1}</a>"
            Arguments
="NewsId,NewsTitle" TitleField="NewsTitle" TitleLength="15" ShowEllipsis="true"
            AllowFiltering
="true" />
        
<Prefix ShowPrefix="true" Format="<img src='Resources/Images/add.png' />" Top="0"
            PredicateArguments
="NewsIsRecommended" />
        
<Suffix ShowSuffix="true" Format="<img src='Resources/Images/alert24.png' />" Top="0"
            PredicateArguments
="NewsIsPublished" />
        
<NewsTime ShowNewsTime="true" Field="NewsTime" FormatDescriptor="[MM-dd]" Position="Footer" />
        
<Pager AllowPaging="true" PageSize="10" PageIndex="1" ShowPageInfo="true" />
        
<PagerSettings Mode="Numeric" Position="TopAndBottom" PageButtonCount="10" Visible="true" />
        
<Slide AllowSliding="false" Direction="Up" Width="400" Interval="1000" Speed="1000" />
    
</YXL:NewsList>

 C#

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                this.NewsList1.News.Filter = new YXL.Controls.NewsList.FilterHandler(Filter);
                this.NewsList1.Prefix.Predicate = new YXL.Controls.NewsList.PredicateHandler(PrefixPredicate);
                this.NewsList1.Suffix.Predicate = new YXL.Controls.NewsList.PredicateHandler(SuffixPredicate);
            }
        }

        /// <summary>
        /// 内容过滤函数
        /// </summary>
        /// <param name="content"></param>
        /// <returns></returns>
        private string Filter(string content)
        {
            content = System.Text.RegularExpressions.Regex.Replace(content, "[A-Z]+", "", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            return content;
        }

        /// <summary>
        /// 前缀显示断言
        /// NewsIsRecommended位于PrefixArguments属性
        /// </summary>
        /// <param name="index">列表行序列</param>
        /// <param name="row">列表行</param>
        /// <returns></returns>
        private bool PrefixPredicate(int index, DataRow row)
        {
            return Convert.ToBoolean(row["NewsIsRecommended"].ToString());
        }

        /// <summary>
        /// 后缀显示断言
        /// NewsIsPublished位于SuffixArguments属性
        /// </summary>
        /// <param name="index">列表行序列</param>
        /// <param name="row">列表行</param>
        /// <returns></returns>
        private bool SuffixPredicate(int index, DataRow row)
        {
            return Convert.ToBoolean(row["NewsIsPublished"].ToString());
        }

2、新闻控件

HTML:

<YXL:News ID="News2" runat="server" ConnectionStringName="SqlServer2" TableName="News"
            NewsIdField
="NewsId">
            
<Title Field="NewsTitle"></Title>
            
<NewsImage DescriptionField="NewsTitle" SrcFormat="Resources/Images/{0}.jpg" SrcArguments="NewsId"
                Width
="500" Height="300" AllowAdjusting="true" />
            
<Content Field="NewsContent" />
            
<Addition Format="新闻来源:{0}&nbsp;作者:{1}&nbsp;时间:{2}&nbsp;点击量:{3}" Arguments="NewsFrom,NewsAuthor,NewsTime,HitCount" />
            
<DivideLine ShowFooterDivideLine="true" />
            
<CloseButton ShowCloseButton="true" ButtonType="Image" ImgSrc="Resources/Images/close.png" Text="【关闭】" />
            
<Adjacent Format="<a target='_self' href='News.aspx?Id={0}'>{1}</a>" Arguments="NewsId,NewsTitle"
                RepeatDirection
="Horizontal" PreviousLabel="上篇:" NextLabel="下篇:" />
        
</YXL:News>

3、幻灯片控件

HTML:

    <YXL:ImageSlider ID="ImageSlider1" runat="server" ConnectionStringName="SqlServer2"
        TableName
="News">
        
<Image SrcFormat="Resources/Images/{0}.jpg" SrcArguments="NewsId" UrlFormat="News.aspx?Id={0}"
            UrlArguments
="NewsId" AllowAdjusting="false" />
        
<Title ShowTitle="true" Field="NewsTitle"></Title>
        
<Navigator ShowNavigator="true" Direction="Left" />
    
</YXL:ImageSlider>

四、更新日志

2011-5-10
1、新闻控件新增内容过滤功能
2、各控件默认样式显示时机的改进

2011-5-11
1、新闻列表控件新增内容过滤功能
2、新闻列表控件新增列表滚动功能

2011-5-13
1、改进新闻列表控件结构
2、改进列表滚动功能,新增上下左右滚动功能,支持文字、图片滚动

2011-5-14
1、改进新闻控件结构
2、改进新闻控件图片功能,支持图片缩放
3、改进幻灯片控件结构

2011-5-15
1、新闻列表新增前后缀断言显示功能
五、最新版本

 下载

如有bug或建议,请给我留言,或Email:showlie@163.com

 

 

 

posted @ 2011-05-08 03:38  寒江独钓客  阅读(904)  评论(0编辑  收藏  举报