PDA

View Full Version : مبتدی: قرار دادن تايمر در آزمون آن لاين



hamideh89
شنبه 27 شهریور 1389, 02:02 صبح
دوستان من يه برنامه اي پيدا كردم واسه تايمر . ولي من ميخام اين تايمر دقيقه رو هم شامل شه. يعني طوري باشه كه ثانيه از 60 شروع به پايين اومدن بكنه و وقتي به 0 رسيد يه دونه از دقيقه كم شه(مثلا 10 بشه 9) و اين عمل تكرار شه تا هر دو صفر شن.اينم برنامهه.
ممنون ميشم رو برنامه اصلاحش كنيد.:خجالت:

Peyman.Gh
شنبه 27 شهریور 1389, 02:23 صبح
protected void AjaxTime_Tick(object sender, EventArgs e)
{
if (int.Parse(Second_Label.Text) != 0)
{
Second_Label.Text = (int.Parse(Second_Label.Text) - 1).ToString();
}
if (int.Parse(Second_Label.Text) == 0)
{
Minute_Label.Text = (int.Parse(Minute_Label) - 1).ToString();
Second_Label.Text = "60";
}
if (int.Parse(Minute_Label.Text) == 0 && int.Parse(Second_Label.Text)==0)
{
AjaxTime.Enabled = false;
}
}

موفق باشید.

Ali_M.Eghbaldar
شنبه 27 شهریور 1389, 02:28 صبح
سلام
فایل خودتو درست کردم
مثل پیمان جان :لبخند:

hamideh89
شنبه 27 شهریور 1389, 14:38 عصر
سلام
فایل خودتو درست کردم
مثل پیمان جان :لبخند:
ممنون ولي دقيقه شمارش منفي ميشه:ناراحت:

Peyman.Gh
شنبه 27 شهریور 1389, 14:59 عصر
ممنون ولي دقيقه شمارش منفي ميشه:ناراحت:

زیر برنامه رویداد Tick تایمر را همانند پست شماره2 بنویسید.

hamideh89
شنبه 27 شهریور 1389, 15:19 عصر
protected void AjaxTime_Tick(object sender, EventArgs e)
{
(int.Parse(Second_Label.Text) != 0)
{
Second_Label.Text = (int.Parse(Second_Label.Text) - 1).ToString();
}
if (int.Parse(Second_Label.Text) == 0)
{
Minute_Label.Text = (int.Parse(Minute_Label) - 1).ToString();
Second_Label.Text = "60";
}
if (int.Parse(Minute_Label.Text) == 0 && int.Parse(Second_Label.Text)==0)
{
AjaxTime.Enabled = false;
}
}

موفق باشید.
اين برنامه به خط اول

if (int.Parse(Label1.Text) != 0)

كه مي رسه از برنامه بيرون مياد و اين اخطار رو ميده
Input string was not in a correct format.

hamideh89
شنبه 27 شهریور 1389, 15:29 عصر
ممنون ولي دقيقه شمارش منفي ميشه:ناراحت:
من اين مشكل رو با اين خط حل كردم.

if ((Convert.ToInt16(lbl.Text) == 1) && (Convert.ToInt16(Label3.Text) == 0))
{
lbl.Text = "0";
AjaxTime.Enabled = false;
}
ولي مشكلم اينه كه وقتي تو 2 ثانيه آخره 2 يهو 0 ميشه. يعني 1 ثانيه كمتر ميشمره:ناراحت:

Peyman.Gh
شنبه 27 شهریور 1389, 15:44 عصر
if ((Convert.ToInt16(lbl.Text) == 0) && (Convert.ToInt16(Label3.Text) == 0))

javad_mjt
شنبه 27 شهریور 1389, 18:55 عصر
با عرض سلام
این نوع تایمر به نظرتون منطقی هستش؟
هر چند سانیه یه درخواست سمت سرور فرستادن فکر نمیکنم زیاد منطقی باشه.
اگه تعداد کاربرا زیاد باشه اونوقت چی؟
سرور پدرش در نمیاد؟

hamideh89
یک شنبه 28 شهریور 1389, 00:11 صبح
if ((Convert.ToInt16(lbl.Text) == 0) && (Convert.ToInt16(Label3.Text) == 0))
چون ثانيه شمار وقتي به 1 ميرسه دوباره 10 ميشه به خاطر همين اين شرط هيچ وقت انجام نميشه.
راه حل ديگه اي به نظرتون نمي رسه؟:ناراحت:
--------------------

با عرض سلام
این نوع تایمر به نظرتون منطقی هستش؟
هر چند سانیه یه درخواست سمت سرور فرستادن فکر نمیکنم زیاد منطقی باشه.
اگه تعداد کاربرا زیاد باشه اونوقت چی؟
سرور پدرش در نمیاد؟
من خيلي مبتدي ام:لبخند: اگه برنامه اي مد نظرتونه ميشه برام بذاريد؟:خجالت:

Himalaya
یک شنبه 28 شهریور 1389, 00:34 صبح
کدی که بچه ها گزاشتن رو اینطوری بنویس


<asp:UpdatePanel ID="Upd" runat="server">
<ContentTemplate>
<asp:Timer ID="AjaxTime" runat="server" Interval="1000" OnTick="AjaxTime_Tick" Enabled="false"></asp:Timer>
<asp:Label ID="lblmin" runat="server" Text="02"></asp:Label> :
<asp:Label ID="lblsec" runat="server" Text="10"></asp:Label>
<br />
<asp:Button ID="btn" runat="server" Text="(Start | Stop) Timer"
onclick="btn_Click" />
</ContentTemplate>
</asp:UpdatePanel>




protected void btn_Click(object sender, EventArgs e)
{
AjaxTime.Enabled = !AjaxTime.Enabled;
}
protected void AjaxTime_Tick(object sender, EventArgs e)
{
int seconds = int.Parse(lblsec.Text);
int minutes = int.Parse(lblmin.Text);
if (--seconds < 0)
{
--minutes;
seconds = 10;
}
if (seconds == 0 && minutes == 0)
{
AjaxTime.Enabled = false;
}
lblsec.Text = seconds.ToString("00");
lblmin.Text = minutes.ToString("00");
}

hamideh89
یک شنبه 28 شهریور 1389, 01:50 صبح
کدی که بچه ها گزاشتن رو اینطوری بنویس


<asp:UpdatePanelID="Upd"runat="server">
<ContentTemplate>
<asp:TimerID="AjaxTime"runat="server"Interval="1000"OnTick="AjaxTime_Tick"Enabled="false"></asp:Timer>
<asp:LabelID="lblmin"runat="server"Text="02"></asp:Label> :
<asp:LabelID="lblsec"runat="server"Text="10"></asp:Label>
<br/>
<asp:ButtonID="btn"runat="server"Text="(Start | Stop) Timer"
onclick="btn_Click"/>
</ContentTemplate>
</asp:UpdatePanel>




protectedvoid btn_Click(object sender, EventArgs e)
{
AjaxTime.Enabled = !AjaxTime.Enabled;
}
protectedvoid AjaxTime_Tick(object sender, EventArgs e)
{
int seconds = int.Parse(lblsec.Text);
int minutes = int.Parse(lblmin.Text);
if (--seconds < 0)
{
--minutes;
seconds = 10;
}
if (seconds == 0 && minutes == 0)
{
AjaxTime.Enabled = false;
}
lblsec.Text = seconds.ToString("00");
lblmin.Text = minutes.ToString("00");
}

script manager رو چرا نذاشتيد؟
اين برنامه با source شما اصلا ران نميشه(البته برام خيلي جالب بود و تعجب آور)اما با source خودم اخطار دفعه ي پيش رو داد
Input string was not in a correct format

Himalaya
یک شنبه 28 شهریور 1389, 09:22 صبح
مگه قراره کل سورس رو کپی پیست کنم تو اینجا. اون قسمتهایی که لازمه رو گذاشتم فقط. وقتی میگم کدی که بچه ها گزاشتن رو اینطوری بنویس منظورم اینه که تو مثالی که یکی از بچه ها فرستاده بود به جای updatepanel و متعلقات داخلش آپدیت پنلی که من گذاشتم رو بزار (حالا باز بگو خوب چرا script maneger نداره) و تو کدهای c# فقط اون دو قسمت رو جایگزین کن (برنداری همه using ها و قسمتهای دیگه رو پاک کنی بعد بگی آقا حالا فلان ارور رو میده ها)
ضمنا معلومه که اون کدای c# با سورس خودتون ران نمیشه (اگه منظورتون سورس اون دوستمون هست)
تو اون سورس 3 تا لیبل بود که یکیش اصلا استفاده ای نشده بود. به یکی از لیبل ها مقدار 10 داده بود و لیبل دیگه رو هم تو کدای c# مقدار دهی میکرد (کار اضافه) و من شخصا موقع کار باهاش قاطی میکردم که کدوم لیبل واسه دقیقه و کدوم واسه ثانیه هستش (label3 , lbl1 , ...) . این بود که اون قسمت رو یه کم تغییر دادم
اگه این کدا رو با سورس اون دوستمون استفاده کنی تو خط اول یا دوم ( دقیق یادم نیست چون سورس رو پاک کردم) ارور میده.چون همونطوری که گفتم اون تو یکی از لیبلهاش مقدار وارد نکرده . پس موقع تبدیل به int ارور میده
این کد رو هم تست کردم و اینجا قرار دادم.
موقع کپی پیست کردن از این کدا هم حواست باشه که مثلا وقتی این خط رو کپی میکنی

<asp:UpdatePanelID="Upd"runat="server">

کلمه UpdatePanel به ID چسبیده و باید اونا رو خودت درست کنی
تو کدای c# هم همینطور مثلا

protectedvoid AjaxTime_Tick
protected void

hamideh89
یک شنبه 28 شهریور 1389, 13:56 عصر
ممنون مشكلم حل شد سر يه بي دقتي كوچولو ارور ميداده