[英]Simple Windows web form application to asp.net application
我在C#Windows Web表單(在Visual C#2010 Express中設計)中有一個簡單的應用程序。
僅有3個按鈕和3個標簽-當我單擊按鈕2時,我在int中有天數(從0到6),然后將這個數字切換為標簽中正確的天數名稱。 同樣,當我單擊按鈕1或3時,我在所有標簽中都有+1或-1天。
這是一個例子:
private void button1_Click(object sender, EventArgs e)
{
NumberDay--;
if (NumberDay < 0) NumberDay = 6;
switch (NumberDay)
{
case 0:
label1.Text = "Saturday";
label2.Text = "Sunday";
label3.Text = "Monday";
break;
case 1:
label1.Text = "Sunday";
label2.Text = "Monday";
label3.Text = "Tuesday";
break;
case 2:
label1.Text = " Monday";
label2.Text = "Tuesday";
label3.Text = "Wednesday";
break;
case 3:
label1.Text = "Tuesday";
label2.Text = "Wednesday";
label3.Text = "Thursday";
break;
case 4:
label1.Text = "Wednesday";
label2.Text = "Thursday";
label3.Text = "Friday";
break;
case 5:
label1.Text = "Thursday";
label2.Text = "Friday";
label3.Text = "Saturday";
break;
case 6:
label1.Text = "Friday";
label2.Text = "Saturday";
label3.Text = "Sunday";
break;
}
}
private void button2_Click(object sender, EventArgs e)
{
button1.Enabled = button3.Enabled = true;
DateTime today = DateTime.Now;
NumberDay = (int)today.DayOfWeek;
switch (NumerDnia)
{
case 0:
label1.Text = "Saturday";
label2.Text = "Sunday";
label3.Text = "Monday";
break;
case 1:
label1.Text = "Sunday";
label2.Text = "Monday";
label3.Text = "Tuesday";
break;
case 2:
label1.Text = " Monday";
label2.Text = "Tuesday";
label3.Text = "Wednesday";
break;
case 3:
label1.Text = "Tuesday";
label2.Text = "Wednesday";
label3.Text = "Thursday";
break;
case 4:
label1.Text = "Wednesday";
label2.Text = "Thursday";
label3.Text = "Friday";
break;
case 5:
label1.Text = "Thursday";
label2.Text = "Friday";
label3.Text = "Saturday";
break;
case 6:
label1.Text = "Friday";
label2.Text = "Saturday";
label3.Text = "Sunday";
break;
}
}
private void button3_Click(object sender, EventArgs e)
{
NumberDay++;
if (NumberDay > 6) NumberDay = 0;
switch (NumberDay)
{
case 0:
label1.Text = "Saturday";
label2.Text = "Sunday";
label3.Text = "Monday";
break;
case 1:
label1.Text = "Sunday";
label2.Text = "Monday";
label3.Text = "Tuesday";
break;
case 2:
label1.Text = " Monday";
label2.Text = "Tuesday";
label3.Text = "Wednesday";
break;
case 3:
label1.Text = "Tuesday";
label2.Text = "Wednesday";
label3.Text = "Thursday";
break;
case 4:
label1.Text = "Wednesday";
label2.Text = "Thursday";
label3.Text = "Friday";
break;
case 5:
label1.Text = "Thursday";
label2.Text = "Friday";
label3.Text = "Saturday";
break;
case 6:
label1.Text = "Friday";
label2.Text = "Saturday";
label3.Text = "Sunday";
break;
}
}
在普通的C#應用程序中,一切正常。 當我嘗試在asp.net(Visual Express 2012 for Veb)中執行相同操作時,遇到了一些麻煩:
當我單擊按鈕2時,一切都很好。 當我按一次按鈕1/3時,我在所有標簽中的日期都不正確(或當我什么也不按下時)
當我再按幾次該按鈕時,什么也沒發生-每次單擊按鈕都不會重新加載頁面(?),因此標簽不會改變。
有人能幫我嗎?
如果您剛剛在頁面級這樣聲明了變量“ NumberDay”,
int NumberDay;
這就是為什么它不保持其值,因為NumberDay在每次回發后都會重置。 你可以像這樣使用ViewState來做
private void button1_Click(object sender, EventArgs e)
{
NumberDay = ViewState["VS_NumberDay"] != null ? Convert.ToInt32(ViewState["VS_NumberDay"]) : 0;
NumberDay--;
if (NumberDay < 0) NumberDay = 6;
ViewState["VS_NumberDay"] = NumberDay;
switch (NumberDay)
{
case 0:
label1.Text = "Saturday";
label2.Text = "Sunday";
label3.Text = "Monday";
break;
case 1:
label1.Text = "Sunday";
label2.Text = "Monday";
label3.Text = "Tuesday";
break;
case 2:
label1.Text = " Monday";
label2.Text = "Tuesday";
label3.Text = "Wednesday";
break;
case 3:
label1.Text = "Tuesday";
label2.Text = "Wednesday";
label3.Text = "Thursday";
break;
case 4:
label1.Text = "Wednesday";
label2.Text = "Thursday";
label3.Text = "Friday";
break;
case 5:
label1.Text = "Thursday";
label2.Text = "Friday";
label3.Text = "Saturday";
break;
case 6:
label1.Text = "Friday";
label2.Text = "Saturday";
label3.Text = "Sunday";
break;
}
}
private void button2_Click(object sender, EventArgs e)
{
button1.Enabled = button3.Enabled = true;
DateTime today = DateTime.Now;
NumberDay = (int)today.DayOfWeek;
ViewState["VS_NumberDay"] = NumberDay;
switch (NumerDnia)
{
case 0:
label1.Text = "Saturday";
label2.Text = "Sunday";
label3.Text = "Monday";
break;
case 1:
label1.Text = "Sunday";
label2.Text = "Monday";
label3.Text = "Tuesday";
break;
case 2:
label1.Text = " Monday";
label2.Text = "Tuesday";
label3.Text = "Wednesday";
break;
case 3:
label1.Text = "Tuesday";
label2.Text = "Wednesday";
label3.Text = "Thursday";
break;
case 4:
label1.Text = "Wednesday";
label2.Text = "Thursday";
label3.Text = "Friday";
break;
case 5:
label1.Text = "Thursday";
label2.Text = "Friday";
label3.Text = "Saturday";
break;
case 6:
label1.Text = "Friday";
label2.Text = "Saturday";
label3.Text = "Sunday";
break;
}
}
private void button3_Click(object sender, EventArgs e)
{
NumberDay = ViewState["VS_NumberDay"] != null ? Convert.ToInt32(ViewState["VS_NumberDay"]) : 0;
NumberDay++;
if (NumberDay > 6) NumberDay = 0;
ViewState["VS_NumberDay"] = NumberDay;
switch (NumberDay)
{
case 0:
label1.Text = "Saturday";
label2.Text = "Sunday";
label3.Text = "Monday";
break;
case 1:
label1.Text = "Sunday";
label2.Text = "Monday";
label3.Text = "Tuesday";
break;
case 2:
label1.Text = " Monday";
label2.Text = "Tuesday";
label3.Text = "Wednesday";
break;
case 3:
label1.Text = "Tuesday";
label2.Text = "Wednesday";
label3.Text = "Thursday";
break;
case 4:
label1.Text = "Wednesday";
label2.Text = "Thursday";
label3.Text = "Friday";
break;
case 5:
label1.Text = "Thursday";
label2.Text = "Friday";
label3.Text = "Saturday";
break;
case 6:
label1.Text = "Friday";
label2.Text = "Saturday";
label3.Text = "Sunday";
break;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.