none
變數的值 無法儲存! RRS feed

  • 問題

  • 小弟我宣告了int a 與 String c  一下按鍵都為(button)

    在加減乘除按下後 會儲存值 但是當我在按一次數字鍵 

    裡面的值都不見了

    小弟我設了中斷來看 int a 在按下加減乘除之後的值就變為0

    而String c 變為null 

    按下加減乘除之後裡面都還有值

    再按一次 數字鍵 就沒了

    ==============================

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;

    namespace WebApplication3
    {

        public partial class WebForm1 : System.Web.UI.Page
        {
            int a;
            string c;
            protected void Button_Click(object sender, EventArgs e)   //0-9數字鍵//
            {
                if (TextBox1.Text == "0")
                {
                    TextBox1.Text = "";
                }

                Button b = (Button)sender;
                TextBox1.Text = TextBox1.Text + b.Text;

            }

            protected void Button23_Click(object sender, EventArgs e)
            {
                TextBox1.Text = "";
            }


            protected void Button22_Click(object sender, EventArgs e) // =按鍵//
            {
                switch (c)
                {
                 case  "+":
                        TextBox1.Text = (a + int.Parse(TextBox1.Text)).ToString();
                        break;
                 case "-":
                        TextBox1.Text = (a - int.Parse(TextBox1.Text)).ToString();
                        break;
                 case "*":
                        TextBox1.Text = (a * int.Parse(TextBox1.Text)).ToString();
                        break;
                 case "/":
                        TextBox1.Text = (a / int.Parse(TextBox1.Text)).ToString();
                        break;
                    default:
                        break;
                }

            }

            protected void Operator_click(object sender, EventArgs e) //加減乘除//
            {
                Button button = (Button)sender;
                c = button.Text;
                a = int.Parse(TextBox1.Text);
                TextBox1.Text = "";
            }
        }
    }

                                              
    2018年3月23日 下午 12:35

解答

所有回覆

  • WwbForm ? 這應該是 postback 的問題.

    看一下點部落裡關於 postback 的文章吧
    點部落 postback


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2018年3月23日 下午 12:51
    版主
  • 除了 postback 之外,你 post 回後端之後,他就會回復初始值了。

    所以你可能要用 ViewState 去儲存你的數值。

    2018年3月23日 下午 12:58
  • 請把欲保留的資料存放到Session, 不要存放到a和c, 詳細做法請參考:

    ASP.NET 工作階段狀態概觀

    • 已標示為解答 Tony_Lin123 2018年3月24日 上午 08:34
    2018年3月24日 上午 01:55
  • 感謝您!我會試試看的

    2018年3月24日 上午 08:27
  • 不好意思!我用了你的辦法 但是一直出現這個System.InvalidCastException: '指定的轉換無效。'

    int a = (int)Session["num"];

    這是錯誤的一行


    2018年3月24日 上午 08:29
  • 我已經找到解決的辦法了 謝謝你
    2018年3月24日 上午 08:34
  • 雖然看起來已經解決問題,但還是要說一下。

    Web 該在前端做的事,不要在後端做。


    強力監督SQL Injection問題!!

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    2018年3月31日 上午 12:12
    版主