每次用户刷新页面时都需要旋转标签中的文本

时间:2009-08-20 14:09:26

标签: c# asp.net vb.net rotation

我有一个名为lblMessage的标签。消息的数据保存在SQL Server 2005 DB中。在我的表中,我有一个消息ID,然后是4行,带有我的消息ID。消息1,消息2,消息3和消息4.

我希望每次用户刷新浏览器时我的lblMessage都会经历一个循环,这样当他刷新它时,下一条消息将是Message 2 .....依旧等等。

我将如何在VB.NET或C#中执行此操作?

提前致谢!

2 个答案:

答案 0 :(得分:2)

<强> VB.NET

Private Shared messageNumber as Integer

Public Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Select Case messageNumber
        Case 0
            lblMessage.Text = MESSAGE_1
        Case 1
            lblMessage.Text = MESSAGE_2
        Case 2
            lblMessage.Text = MESSAGE_3
        Case 3
            lblMessage.Text = MESSAGE_4
    End Select
    messageNumber = (messageNumber + 1) Mod 4
End Sub

<强> C#

private static int messageNumber;

public void Page_Load(object sender, System.EventArgs e)
{
    switch (messageNumber) {
        case 0:
            lblMessage.Text = MESSAGE_1;
            break;
        case 1:
            lblMessage.Text = MESSAGE_2;
            break;
        case 2:
            lblMessage.Text = MESSAGE_3;
            break;
        case 3:
            lblMessage.Text = MESSAGE_4;
            break;
    }
    messageNumber = (messageNumber + 1) % 4;
}

答案 1 :(得分:1)

您没有在问题中描述表架构,因此我不知道您的消息表是否包含除消息ID和消息之外的任何内容。如果你可以添加另一个列,你可以把它称为序列,并使它成为一个tinyint。

现在,在提取消息时,您需要同时指定消息ID和序列号。

每次刷新时,都会递增序列号并将其模数设为4(因此序列始终为0,1,2或3)。

类似的东西:

sequence = sequence++ % 4;
lblMessage.Text = fetchMessage(MessageID, sequence);

和fetchMessage只是执行您的查询:

Select  message
  From  tbl_Messages
  Where messageID = @messageID
        and sequence = @sequence