ASP.net(C#)中如何从后台数据库中读取新闻列表
我是一个从学者,现在要从后台数据库中动态读取新闻(从数据库读取前10条新的新闻标题,当点击标题后,从新的页面读取出想应的新闻内容),谁能告诉我一下相应的代码还有方法,我的...
我是一个从学者,现在要从后台数据库中动态读取新闻(从数据库读取前10条新的新闻标题,当点击标题后,从新的页面读取出想应的新闻内容),谁能告诉我一下相应的代码还有方法,我的QQ邮件是147249735@qq.com
展开
展开全部
这个很简单,首先在页面:
<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。
<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。
展开全部
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)
新页面再查具体内容就行了
按时间取最新的10条标题.ds接
dategrid.source=ds.tables["name"]; //数据集控件都OK
把行定义为链接.取ID值转到新页面.
response.redirect("url?nid="+id)
新页面再查具体内容就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2010-03-29
展开全部
top 10读取到Dataset中 跳转页面带一个参数 就行列
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询