滚屏显示从数据库读取到的记录

angleoldhen 2008-07-01 10:06:26
我就想实现从数据库读取记录后显示在页面上,然后将这些记录滚动显示。当最后一行记录从屏幕上方滚出后,再次读取读取数据库,如此反复。
读取数据并显示我用gridview,滚屏我用js来实现。
但是我碰到的疑问是在“//此处填写代码”地方应该怎么写才能实现要嘛再次读取数据库,要嘛刷新页面呢?

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>滚动显示</title>
<script language="javascript" charset="gb2312" type="text/javascript">
var timer;
function startScroll(){
timer = setInterval("Scroll_ing()",10);
}
function stopScroll(){
clearInterval(timer);
}
function Scroll_ing(){
nowScroll=document.body.scrollTop+1 ;
window.scroll(0,nowScroll);
if(nowScroll!=document.body.scrollTop){
//此处填写代码
}
}
document.onmousedown=stopScroll;
document.ondblclick=startScroll;
</script>
</head>
<body bgcolor="#fef4d9" onload="startScroll()">
<form id="form1" runat="server">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="id"
DataSourceID="AccessDataSource1" Width="438px" BackColor="LightGoldenrodYellow" BorderColor="Tan" BorderWidth="1px" CellPadding="2" ForeColor="Black" GridLines="None">
<Columns>
<asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True"
SortExpression="id" />
<asp:BoundField DataField="worktime" HeaderText="worktime" SortExpression="worktime" />
<asp:BoundField DataField="didian" HeaderText="didian" SortExpression="didian" />
<asp:BoundField DataField="content" HeaderText="content" SortExpression="content" />
<asp:BoundField DataField="paigongzhe" HeaderText="paigongzhe" SortExpression="paigongzhe" />
</Columns>
<FooterStyle BackColor="Tan" />
<PagerStyle BackColor="PaleGoldenrod" ForeColor="DarkSlateBlue" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="DarkSlateBlue" ForeColor="GhostWhite" />
<HeaderStyle BackColor="Tan" Font-Bold="True" />
<AlternatingRowStyle BackColor="PaleGoldenrod" />
</asp:GridView>
<asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/gonggao.mdb"
SelectCommand="SELECT * FROM [paigong]"></asp:AccessDataSource>
</form>
<div id="addHeight" style="height:1px;width:1px;font-size:1px;background:#red">
</div>
<script language="javascript" charset="gb2312" type="text/javascript">document.getElementById("addHeight").style.height=document.body.clientHeight</script>
</body>
</html>
...全文
189 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
angleoldhen 2008-07-28
  • 打赏
  • 举报
回复
如何实现呢?
分少我可以再加啊
xlong224 2008-07-24
  • 打赏
  • 举报
回复
我都是用<marquee>实现
liqiang8 2008-07-24
  • 打赏
  • 举报
回复
在服务器端按规则组成js就可以了.比如用递归等,具体什么js可以网上找找
leon28 2008-07-24
  • 打赏
  • 举报
回复
我的想法是将滚动部分用单独的页面存放,然后在当前页面用img调用,类似于验证码
moudy 2008-07-24
  • 打赏
  • 举报
回复
可能是你分数太少了,高手都不来。

下面仅提供思路

你放两个隐藏框,隐藏框2属性改为runat="server" 双击会自动生成 OnServerChange事件(可能事件写错了,反正会生成)

每次滚完一次,
if(nowScroll ==document.body.scrollTop){
//此处填写代码
var times = document.all("隐藏框1").Value;
if(times >= 你要滚的次数)
{
document.all("隐藏框2").Value = document.all("隐藏框2").Value+1;
document.all("隐藏框1").Value = 0;
}
else
{
document.all("隐藏框1").Value = times+1;
}
}
yixiaojn 2008-07-24
  • 打赏
  • 举报
回复
我是用<marquee>和datagrid做的,代码如下:
<marquee onmouseover="this.stop()" onmouseout="this.start()" scrollamount="2" scrolldelay="240"
direction="up" height="216">
<table class="body"
cellspacing="1" cellpadding="0" width="183" align="center"
bgcolor="#ffffff" border="0">
<tbody>
<tr>
<td valign="middle"
align="left" bgcolor="#ffffff"><p
class="style5 style26" align="left"><span
class="style27"></span><span class="a3">
<asp:DataGrid id="dg_HYDT" runat="server" CellSpacing="1" ShowHeader="False" GridLines="None" CellPadding="0" AutoGenerateColumns="False" AllowPaging="True" BorderStyle="None" BackColor="Transparent">
<FooterStyle BackColor="#99CCCC" ForeColor="#003399"></FooterStyle>
<SelectedItemStyle BackColor="#009999" ForeColor="#CCFF99" Font-Bold="True"></SelectedItemStyle>
<PagerStyle Mode="NumericPages" BackColor="#99CCCC" ForeColor="#003399" HorizontalAlign="Left" Visible="False"></PagerStyle>
<AlternatingItemStyle HorizontalAlign="Left" Font-Italic="False" Font-Strikeout="False" Font-Underline="False" Font-Overline="False" Font-Bold="False" VerticalAlign="Top"></AlternatingItemStyle>
<ItemStyle BackColor="Transparent" ForeColor="#003399" HorizontalAlign="Left" Font-Italic="False" Font-Strikeout="False" Font-Underline="False" Font-Overline="False" Font-Bold="False" VerticalAlign="Top"></ItemStyle>
<HeaderStyle BackColor="#003399" ForeColor="#CCCCFF" Font-Bold="True"></HeaderStyle>
<Columns>
<asp:TemplateColumn>
<ItemTemplate> *  </ItemTemplate>
<HeaderStyle Width="10px"></HeaderStyle>
</asp:TemplateColumn>
<asp:TemplateColumn>
<ItemTemplate>
<asp:HyperLink runat="server" CssClass="a3" Text='<%# DataBinder.Eval(Container, "DataItem.m_title") %>' NavigateUrl='<%# DataBinder.Eval(Container, "DataItem.m_ID", "system_m/HYDT_m/HYDT_details.aspx?m_ID={0}") %>' Target="_blank"></asp:HyperLink>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
</span></p></td>
</tr>
</tbody>
</table>
</marquee>

数据绑定:
private void DataBindTodg_HYDT()
{
SqlConnection con = DB.createCon();
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = new SqlCommand("select *from HYDT order by m_date DESC", con);
DataSet ds = new DataSet();
sda.Fill(ds, "HYDT");
this.dg_HYDT.DataSource = ds.Tables["HYDT"];
this.dg_HYDT.DataBind();
}
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{

this.DataBindTodg_HYDT();

}
}
整体思路就是datagrid读取数据库的内容,然后marque滚动显示,不知对你有没有帮助
angleoldhen 2008-07-24
  • 打赏
  • 举报
回复
going on
donghai83 2008-07-23
  • 打赏
  • 举报
回复
再顶
angleoldhen 2008-07-04
  • 打赏
  • 举报
回复
那只好继续顶了。。。
donghai83 2008-07-03
  • 打赏
  • 举报
回复
再顶,可惜没有人答复,这个问题也是我想知道的.
troy-zhou 2008-07-02
  • 打赏
  • 举报
回复
干嘛用GridView来做,JS+Reapter来做嘛
donghai83 2008-07-02
  • 打赏
  • 举报
回复
关注中......
angleoldhen 2008-07-02
  • 打赏
  • 举报
回复
别沉了
angleoldhen 2008-07-02
  • 打赏
  • 举报
回复
用gridview和repeater都无所谓,这只是一个表现形式,关键是如何实现循环滚屏几次后再次去读取记录来进行下一轮的滚屏

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧