TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
Answers
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Forums
Monthly Leaders
Forum guidelines
Arpit gupta
NA
5
19.9k
Problem using timer control in datalist
Aug 7 2010 8:23 AM
Hi all
I have used timer control in datalist in my web application . i bind all fields as below
<asp:DataList ID="PrdDataList" runat="server" RepeatDirection="Horizontal"
RepeatColumns="5" Width="656px" DataKeyField="id"
onitemdatabound="PrdDataList_ItemDataBound">
<ItemTemplate>
<table border="0" cellspacing="0" cellpadding="0" class="box2">
<tr>
<td class="hd">
<span>Auction</span><asp:label ID="lblid" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "id")%>'></asp:label>
</td>
</tr>
<tr>
<td>
<asp:Label ID="lblTimeWatch" runat="server"
style="color:#68b121; font-weight: 700; font-size: 26px" Text='<%# DataBinder.Eval(Container.DataItem, "TimeDiff")%>'> </asp:Label>
<asp:Timer ID="BidTimer" runat="server" ontick="BidTimer_Tick">
</asp:Timer>
<input id="mseconds" runat="server" type="hidden" />
<input id="second" runat="server" type="hidden" />
<input id="minute" type="hidden" runat="server" />
<input id="hour" type="hidden" runat="server" />
<input id="day" type="hidden" runat="server" />
</td>
</tr>
<tr>
<td>
<asp:UpdatePanel ID="UpdatePanel3" runat="server">
<ContentTemplate>
<h1><img alt="rs" src="image/canvas.PNG" />
<asp:Label ID="lblbidprice" Text="0.50" runat="server" ></asp:Label></h1>
</ContentTemplate>
</asp:UpdatePanel>
</td>
</tr>
<tr>
<td>
<b>Buy Now:</b>
<span><img alt="rs" src="image/canvas.PNG" /></span>
<%#DataBinder.Eval(Container.DataItem,"Price") %>
</td>
</tr>
<tr>
<td>
<table>
<tr>
<td class="gray" id="tdbidder" runat="server" style="padding-left:20px">
<asp:DataList ID="dlbidder" runat="server" GridLines="None">
<ItemTemplate>
<%#Eval("UserId") %>
</ItemTemplate>
</asp:DataList>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td >
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<asp:ImageButton ID="btnBid" runat="server" CommandName="BidClick"
ImageUrl="~/images/btn_bid.jpg" onclick="btnBid_Click" ></asp:ImageButton>
<%--<asp:Button id="btnBid" style="background-color:#33CC33" Text="Bid" runat="server" onclick="btnBid_Click" /> --%>
</ContentTemplate>
</asp:UpdatePanel>
</td>
</tr>
</table>
</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
I bind the data list at page load. But the timer start only with the last template created. The 'timeDiff" is exact difference between timer starttime and currentdatetime. The code is here:
protected void BidTimer_Tick(object sender, EventArgs e)
{
PerformClock();
}
void PerformClock()
{
foreach (DataListItem dlitem in PrdDataList.Items)
{
lblid = (Label)dlitem.FindControl("lblid");
auc_id = Convert.ToInt32(lblid.Text);
BidTimer = (Timer)dlitem.FindControl("BidTimer");
mseconds = (HtmlInputHidden)dlitem.FindControl("mseconds");
second = (HtmlInputHidden)dlitem.FindControl("second");
minute = (HtmlInputHidden)dlitem.FindControl("minute");
hour = (HtmlInputHidden)dlitem.FindControl("hour");
day = (HtmlInputHidden)dlitem.FindControl("day");
lblTimeWatch = (Label)dlitem.FindControl("lblTimeWatch");
btnBid = (ImageButton)dlitem.FindControl("btnBid");
}
MilliSeconds = Convert.ToInt32(mseconds.Value);
Seconds = Convert.ToInt32(second.Value);
Minutes = Convert.ToInt32(minute.Value);
Hours = Convert.ToInt32(hour.Value);
Days = Convert.ToInt32(day.Value);
ds = AuctionDAL.retrieveAll();
if (lblTimeWatch.Text == "01.00:01:00")
{
lblTimeWatch.Text = "01.00:00:59:";
Minutes = 0;
Hours = 0;
Seconds = 59;
Days = 1;
}
else if (lblTimeWatch.Text == "01.01:01:00")
{
lblTimeWatch.Text = "01.01:00:59";
Minutes = 0;
Hours = 1;
Seconds = 59;
Days = 1;
}
else if (lblTimeWatch.Text == "01.01:00:00")
{
lblTimeWatch.Text = "01.00:59:59";
Days = 1;
Hours = 0;
Minutes = 59;
Seconds = 59;
}
else if (lblTimeWatch.Text == "01.00:00:00")
{
lblTimeWatch.Text = "00.59:59:59";
Days = 0;
Hours = 59;
Minutes = 59;
Seconds = 59;
}
else if (lblTimeWatch.Text == "00:00:00")
{
DataSet dsbid = new DataSet();
dsbid = BidDAL.retrieveBidData(auc_id);
if (dsbid.Tables[0].Rows.Count > 0)
{
Seconds--;
if (Seconds == -1)
{
lblTimeWatch.Text = "Go1";
}
}
else
{
lblTimeWatch.Text = "00:00:15";
Seconds = 15;
Minutes = 0;
Hours = 0;
MilliSeconds = 0;
}
}
else if (lblTimeWatch.Text == "Go1")
{
Seconds--;
if (Seconds == -2)
{
lblTimeWatch.Text = "Go2";
}
}
else if (lblTimeWatch.Text == "Go2")
{
Seconds--;
if (Seconds == -3)
{
lblTimeWatch.Text = "Go3";
}
}
else if (lblTimeWatch.Text == "Go3")
{
Seconds--;
if (Seconds == -4)
{
BidTimer.Enabled = false;
lblTimeWatch.Text = "Sold";
//btnBid.Text= "BidEnd";
btnBid.Enabled = false;
}
}
else if (lblTimeWatch.Text == "00:00:15")
{
Seconds--;
Minutes = 0;
Hours = 0;
MilliSeconds = 0;
}
else if (lblTimeWatch.Text == "00:01:00")
{
Minutes = 0;
MilliSeconds = 0;
Seconds = 59;
Hours = 0;
}
else
{
if (Seconds % 60 == 0)
{
Minutes--;
MilliSeconds = 0;
Seconds = 59;
if (Minutes % 3600 == 0)
{
Hours--;
MilliSeconds = 0;
Seconds = 59;
Minutes = 59;
if (Hours % 86400 == 0)
{
Days--;
Hours = 23;
MilliSeconds = 0;
Seconds = 59;
Minutes = 59;
}
}
}
Seconds--;
}
mseconds.Value = MilliSeconds.ToString();
second.Value = Seconds.ToString();
minute.Value = Minutes.ToString();
hour.Value = Hours.ToString();
day.Value = Days.ToString();
if (Days > 0)
{
lblTimeWatch.Text = Days.ToString("00") + "." + Hours.ToString("00") + ":" + Minutes.ToString("00") + ":" + Seconds.ToString("00");
}
else
{
if (Seconds >= 0)
{
lblTimeWatch.Text = Hours.ToString("00") + ":" + Minutes.ToString("00") + ":" + Seconds.ToString("00");
}
}
}
Please help me so that i can successfully use timer in my web application.
for like website click here
http://www.BidRivals.com
Reply
Answers (
0
)
How I get data alphabatically from xml file in Listbox
How to implement Audio CAPTCHA in registration page.