使用计时器控件调用幻灯片放映中的图像
本文关键字:图像 幻灯片 计时器 控件 调用 | 更新日期: 2023-09-27 18:34:12
我有两组名为 Div1 和 Div2 的图像,必须在幻灯片中调用。条件是这样的,
对于前七天,我希望在幻灯片中显示第一组 Div 的图像,一旦七天完成,就应该显示下一组 Div 的图像。我知道这是可以通过计时器控制实现的。但是我到现在还没有用过。
到目前为止没有代码可以共享,因为我已经从表中调用了幻灯片中的图像。如果您还想要其他任何东西,请告诉我。
请帮忙。这样我就可以使用它
任何帮助都是可观的
我的幻灯片代码在这里:-
protected void Page_Load(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["DefaultSQLConnectionString"].ConnectionString);
SqlDataAdapter da = new SqlDataAdapter("SELECT Name FROM tblImages", conn);
DataTable dt = new DataTable();
da.Fill(dt);
rptImages.DataSource = dt;
rptImages.DataBind();
Page.Header.DataBind();
}
ASPX 代码:-
<div class="imgbanner-login" style="margin-bottom: 10px;">
<div class="img-login-ca">
<div class="index-img-banner">
<div id="slider" class="nivoSlider">
<asp:Repeater ID="rptImages" runat="server">
<ItemTemplate>
<li style="list-style: none;">
<img alt="" src='<%# Eval("Name") %>' />
</li>
</ItemTemplate>
</asp:Repeater>
</div>
</div>
<div class="login">
<uc1:indexrightpanel runat="server" id="indexRightPanel" />
</div>
</div>
</div>
另请参阅数据库结构:-
ID int 未选中
名称 nvarchar(MAX) 已选中
[订单] int 已检查
名称列包含图像路径
这是我设置的一个小型数据库,用于演示如何处理此需求的想法:
CREATE TABLE [dbo].[SetTable] (
[SetId] INT IDENTITY (1, 1) NOT NULL,
[SetName] VARCHAR (10) NOT NULL,
PRIMARY KEY CLUSTERED ([SetId] ASC)
);
Go
INSERT INTO SetTable values ('A'), ('B');
GO
CREATE TABLE [dbo].[SetShowLog] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[SetId] INT NOT NULL,
[LastShown] DATETIME DEFAULT (getdate()) NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC),
CONSTRAINT [FK_SetShowLog_SetTable] FOREIGN KEY ([SetId]) REFERENCES [dbo].[SetTable] ([SetId])
);
Go
CREATE TABLE [dbo].[ImageTable] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[Name] VARCHAR (25) NULL,
[SetId] INT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC),
CONSTRAINT [FK_ImageTable_SetTable] FOREIGN KEY ([SetId]) REFERENCES [dbo].[SetTable] ([SetId])
);
Go
Insert into ImageTable ([Name], [SetId]) values
('image1.jpg', 1),
('image2.jpg', 1),
('image3.jpg', 2),
('image4.jpg', 2);
go
CREATE PROCEDURE [dbo].[GetImages]
AS
declare @logId int;
--get the last shown set
select @logid = IDENT_CURRENT('SetShowLog');
declare @setid int;
declare @lastShowDate datetime;
declare @now datetime;
set @now = GETDATE();
select
@setid = setid,
@lastShowDate = LastShown
from SetShowLog
where Id = @logId;
if @@ROWCOUNT = 0
begin
--this is first insert into the log table
insert into SetShowLog(SetId) values (1);
set @setid = 1; --we show set A as default
end
else
begin
if( DATEDIFF(dd, @lastShowDate, @now) > 7 ) --seven day check
begin
--change the set
select @setid = case @setid when 1 then 2
when 2 then 1 end;
--update log
insert into SetShowLog(SetId) values (@setid);
end
end --//end of @@rowcount check
select * from ImageTable where SetId = @setid;
RETURN 0
您可以在 Visual Studio 中启动一个新的数据库文件,并运行脚本来初始化数据库...检查存储的过程GetImages
实现。
这仅允许您根据需要查询图像。可以在计时器回发中重用代码本身,只需调用存储的过程即可。
我不打算编写任何代码,但一个简单的解决方案是在某处有一个开始日期。 你做一个日期差异几天,然后是一个mod 14,任何低于7的东西都是第一周,任何更高的都是第二周,根据这个条件进行选择