2014-01-10 54 views
0

我在C#windows web窗体(在Visual C#2010 Express中设计)中有简单的应用程序。简单的Windows web窗体应用程序到asp.net应用程序

只有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(视觉快递2012年VEB)我有一些麻烦:

  1. 当我点击按钮2这一切都很好。当我按下按钮1/3一次我在所有标签中有错误的一天(或者当我按下什么都没有发生时)

  2. 当我按下按钮多次时没有任何事发生 - 页面没有重新加载(?)按钮点击,标签不变。

有人可以帮助我吗?

+1

是NumberDay是页面级别的静态变量吗? –

+0

你是Asp.net的新手,所以首先是Asp.net的谷歌基础知识。 Asp.net和Windows应用程序在状态方面是完全不同的 –

+0

@ user2456849:请提供ASPX代码,以便我们可以为您提供帮助。 –

回答

0

如果刚刚宣布你在页面级变量“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; 
    } 
} 
+0

伟大的工作thx :) – user2456849

相关问题