简单的Windows Web表单应用程序到asp.net应用程序

时间:2014-01-10 12:57:23

标签: c# asp.net webforms label buttonclick

我在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)中做同样的事情时,我遇到了一些麻烦:

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

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

  3. 有人能帮助我吗?

1 个答案:

答案 0 :(得分: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;
    }
}