C# Web アプリケーションで jQuery を使用して、複数のカウントダウンを作成しようとしています。
データベースに 2 つの異なる日付があり、それを JavaScript に挿入しています。これは正常に動作しますが、javascript は DB から同じ日付を使用しています。おそらく、javascript のインスタンスが 1 つしかないためです。これを解決する方法についてアドバイスが必要です。
これが完全なコードです。
マークアップ:
<script type="text/javascript" src="scripts/jquery.countdown.js"></script>
<script type="text/javascript">
$(function () {
var count = new Date('<%=Datestring%>');
var countdown = setInterval(function () {
$('.countdown').countdown({ until: count, format: 'DHMS' });
if (count == 0) {
window.location = 'http://google.com';
}
count--;
}, 1000);
});
</script>
<asp:Repeater ID="repAuctions" runat="server" OnItemDataBound="repAuctions_OnItemDataBound">
<ItemTemplate>
<div>
<asp:Literal ID="litHeading" runat="server" />
<br/>
<asp:Literal ID="litCountDown" runat="server" />
</div>
</ItemTemplate>
</asp:Repeater>
バックエンド:
public string Datestring;
protected void Page_Load(object sender, EventArgs e)
{
repAuctions.DataSource = AuctionsFactory.GetAllAuctions();
repAuctions.DataBind();
}
protected void repAuctions_OnItemDataBound(object sender, RepeaterItemEventArgs e)
{
var auction = (Auction)e.Item.DataItem;
var litCountDown = (Literal)e.Item.FindControl("litCountDown");
var litHeading = (Literal)e.Item.FindControl("litHeading");
string format = "ddd MMM d yyyy HH:mm:ss";
var countdowndate = (DateTime) auction.TimeLeft;
Datestring = countdowndate.ToString(format);
litHeading.Text = auction.Heading;
litCountDown.Text = auction.TimeLeft + "<span class='countdown'></span>";
}
前もって感謝します :)