ASP.net(C#)中如何从后台数据库中读取新闻列表
答案:3 悬赏:10 手机版
解决时间 2021-02-25 02:53
- 提问者网友:献世佛
- 2021-02-24 14:33
我是一个从学者,现在要从后台数据库中动态读取新闻(从数据库读取前10条新的新闻标题,当点击标题后,从新的页面读取出想应的新闻内容),谁能告诉我一下相应的代码还有方法,我的QQ邮件是147249735@qq.com
最佳答案
- 五星知识达人网友:詩光轨車
- 2021-02-24 15:45
这个很简单,首先在页面:
<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。
全部回答
- 1楼网友:荒野風
- 2021-02-24 17:09
top 10读取到Dataset中 跳转页面带一个参数 就行列
- 2楼网友:青尢
- 2021-02-24 16:06
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)
新页面再查具体内容就行了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯