ASP.net(C#)中如何从后台数据库中读取新闻列表

2024-12-12 20:01:53
推荐回答(3个)
回答1:

这个很简单,首先在页面:
onitemdatabound="new_browSimple_ItemDataBound">






' 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">


然后在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。

回答2:

select top 10 n_id,n_titles from db_news order by n_date
按时间取最新的10条标题.ds接
dategrid.source=ds.tables["name"]; //数据集控件都OK

把行定义为链接.取ID值转到新页面.
response.redirect("url?nid="+id)
新页面再查具体内容就行了

回答3:

top 10读取到Dataset中 跳转页面带一个参数 就行列