2014-01-10 2 views
0

У меня есть простое приложение в веб-форме Windows C# (разработанное на Visual C# 2010 Express).Простое приложение для веб-формы Windows для приложения 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 (Visual Express, 2012 для Вэб) У меня есть некоторые проблемы:

  1. Когда я нажимаю кнопку 2, это все хорошо. Когда я нажимаю кнопку 1/3 ONCE, у меня есть неправильный день во всех ярлыках (или когда я ничего не нажимаю)

  2. Когда я нажимаю кнопку еще пару раз, ничего не происходит - страница не перезагружается (?) В каждом нажатие кнопки, метка не меняется.

Может кто-нибудь мне помочь?

+1

is NumberDay - это статическая разновидность уровня страницы? –

+0

Вы новичок в Asp.net, так что сначала основы Google 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

Смежные вопросы