为什么变量在Page_Init中初始化后变为null?

Ahm*_*rid 0 c# asp.net initialization

我在类中定义了一个数组,而不是在任何方法中,作为全局变量,在同一范围的方法中:

TextBox[,] tx = new TextBox[100,100];
TableCell[,] tc = new TableCell[100, 100];
TableRow[] tr = new TableRow[100];
Run Code Online (Sandbox Code Playgroud)

我在Page_Init事件中初始化它们:

protected void Page_Init(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            //only for initiializing
            for (int i = 0; i < 100; i++)
            {
                tr[i] = new TableRow();
                for (int j = 0; j < 100; j++)
                {
                    tx[i, j] = new TextBox();
                    tc[i, j] = new TableCell();
                }
            }

        }

    }
Run Code Online (Sandbox Code Playgroud)

当我点击按钮或任何回发事件时,变量再次变为空!这有什么不对?

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

这是通过使用Session来存储它们来解决的,但现在却缺少了.如何将文本框中的值保存到此Session容器中?什么时候这样做?

Joe*_*orn 5

每次进行任何回发时,即使只是处理按钮点击,您也可以使用页面类的全新实例.这是ASP.Net 101.

要解决此问题,请删除该if (!IsPostBack)检查.然后将所有可见属性设置为False并立即将它们添加到页面.当您找到需要的数量时,请为这么多控件将Visible属性设置为"true".

总是两个; 不多也不少.请求和响应.