<asp:Repeater ID="new_browSimple" runat="server"
onitemdatabound="new_browSimple_ItemDataBound">
<HeaderTemplate><table></HeaderTemplate>
<ItemTemplate>
<tr><td>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("new_id", "show_news.aspx?new_id={0}") %>' Target="_blank" Text='<%# DataBinder.Eval(Container.DataItem,"new_title_big") %>' Font-Underline="false" ForeColor="Black" ToolTip='<%# DataBinder.Eval(Container.DataItem,"new_title_big") %>' Font-Size="14px" Width="240px"></asp:HyperLink>
</td></tr>
</ItemTemplate>
<FooterTemplate></table></FooterTemplate>
</asp:Repeater>
然后在page_load中写:
DataClassesDataContext dtx = new DataClassesDataContext()
var query = from s in dtx.news_details orderby s.publish_date descending,s.grade descending select s
var result=query.Take(7)
this.new_browSimple.DataSource = result
this.new_browSimple.DataBind()
如果标题超出你控件的宽度,你可以截取一定长度,(此时我控件的宽度是240px):
protected void new_browSimple_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
int length = ((HyperLink)e.Item.FindControl("HyperLink1")).Text.Length
string text
if (length >= 16)
{
text = ((HyperLink)e.Item.FindControl("HyperLink1")).Text.Substring(0,16)
}
else
{
text = ((HyperLink)e.Item.FindControl("HyperLink1")).Text
}
((HyperLink)e.Item.FindControl("HyperLink1")).Text = text
}
}
这样就不会因标题太长而造成换行了。不过我是用linq查询,你可以改用ADO.NET。
新闻采集系统是将非结构化的新闻文章从多个新闻来源网页中抽取出来保存到结构化的数据库中的软件。主要功能
根据用户自定义的任务配置,批量而精确地抽取目标网络媒体栏目中的新闻或文章,转化为为结构化的记录(标题,作者,内容,采集时间,来源,分类,相关图片等),保存在本地数据库中,用于内部使用或外网发布,快速实现外部信息的获取。
主要技术
新闻采集系统核心技术是模式定义和模式匹配。模式属于人工智能的术语,意思为前人积累的经验的抽象和升华。简单地说,就是从不断重复出现的事件中发现和抽象出的规律,是解决问题的经验的总结。只要是一再重复出现的事物,就可能存在某种模式。
所以要让新闻采集系统能够运行,目标网站必须具备重复出现的特征。目前大多网站都是动态生成的,这样就会让同一模板的页面包含相同的内容,新闻采集系统正是利用这些相同的内容来定位采集数据的。
新闻采集系统中的模式大多不是程序自动发现的,目前几乎所有的新闻采集系统产品都需要通过人工来定义。但模式本身是个很复杂,很抽象的内容,所以所有的开发者精力都花在怎样让模式定义更简单,更准确,这也是新闻采集系统竞争力的衡量标准。
现在国内在新闻采集行业,比较领先的是深圳的乐思。他们的采集系统可以智能的抓取新闻,也就是说不需要配置。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)