Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#将项目添加到列表中<&燃气轮机;不';不要增加它的尺寸_C#_Asp.net_List - Fatal编程技术网

C#将项目添加到列表中<&燃气轮机;不';不要增加它的尺寸

C#将项目添加到列表中<&燃气轮机;不';不要增加它的尺寸,c#,asp.net,list,C#,Asp.net,List,我在ASP.NET中玩了一点,这里有一些显示列表大小的代码和一些操作它的按钮 我已经分离了类来创建带有构造函数的列表。这里还有一个增加其大小的方法 using System; using System.Collections.Generic; using System.Linq; using System.Web; public class Class1 { public List<byte> Pole { get; set; } public int velik

我在ASP.NET中玩了一点,这里有一些显示列表大小的代码和一些操作它的按钮

我已经分离了类来创建带有构造函数的列表。这里还有一个增加其大小的方法

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


public class Class1
{
    public List<byte> Pole { get; set; }
    public int velikost_pole { get; set; }  //list size

    public Class1()                         //constructor, default size is 3
    {
        List<byte> pole = new List<byte>();
        for (byte a = 0; a < 3; a++)
        {
            pole.Add((byte)(a * a));
        }
        Pole = pole;
        velikost_pole = Pole.Count;
    }
    public string zvetsit_pole()            //method to increase the list size by adding item
    {
        if (Pole.Count < 6)                 //max size
        {
            Pole.Add((byte)(Pole.Count*Pole.Count+1));
            velikost_pole = Pole.Count;
            return "Pole zvetseno o 1";
        }
        else
        {
            return "Jiz nelze zvetsit";
        }
    }
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
公共班级1
{
公共列表极{get;set;}
public int velikost_pole{get;set;}//列表大小
public Class1()//构造函数,默认大小为3
{
列表极点=新列表();
用于(字节a=0;a<3;a++)
{
极点加((字节)(a*a));
}
极点=极点;
velikost_极点=极点计数;
}
公共字符串zvetsit_pole()//通过添加项来增加列表大小的方法
{
if(极数<6)//最大尺寸
{
Pole.Add((字节)(Pole.Count*Pole.Count+1));
velikost_极点=极点计数;
返回“极zvetseno o 1”;
}
其他的
{
返回“Jiz nelze zvetsit”;
}
}
}
在主文件中,对象被创建为全局变量,并且有一个按钮用于增加列表大小。然而,大小没有改变,仍然是一样的

public partial class _Default : System.Web.UI.Page
{
    Class1 objekt = new Class1();                   //create the object

    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Label1.Text = "Velikost pole je: " + objekt.velikost_pole.ToString() + "<br />";
        for (int a=0;a<objekt.velikost_pole;a++)
        {
            Label1.Text += objekt.Pole[a].ToString() + "&nbsp";
        }
    }
    protected void Button2_Click(object sender, EventArgs e)    //call method to increase the size
    {
        Label1.Text = objekt.zvetsit_pole();
    }
public分部类\u默认值:System.Web.UI.Page
{
Class1 objekt=new Class1();//创建对象
受保护的无效页面加载(对象发送方、事件参数e)
{
}
受保护的无效按钮1\u单击(对象发送者,事件参数e)
{
Label1.Text=“Velikost-pole-je:”+objekt.velikostu-pole.ToString()+“
”; 对于(int a=0;a请记住ASP.NET是无状态的,因此每个请求都会创建一个全新的
Page
对象。因此,您的活动时间线如下所示:

  • 请求页
    • 页面
      已创建
    • objekt
      已创建
    • 页面呈现
  • 按钮1点击
    • 页面
      已创建
    • objekt
      已创建(与第一个请求的对象不同)
    • Label1.Text
      set
    • 页面呈现
  • 按钮2点击
    • 页面
      已创建
    • objekt
      已创建(与前两个请求中的任何一个都不相同)
    • zvetsit\u极
      调用
    • Label1.Text
      设置为返回值
    • 页面呈现
因此,按钮单击事件处理不同的对象,因此在下一个操作中看不到一个操作的结果


答案是将
objekt
放入某种持久性存储中,如
ViewState
Cache
、或
Session
。如果您不知道哪一个适合您的需要,请自己做一些研究和决定。

每个请求都会创建
\u Default
类的一个新实例,并相应地,
objekt
也将是
Class1
的新实例

这意味着您在一个请求中对
objekt
所做的任何更改都不会反映在下一个请求中

为了使更改在请求之间持久化,您需要将其存储在某个位置。有不同的选项可以执行此操作,一些选项涉及使用用户的会话,另一些选项涉及使用页面的视图状态,或者可能将状态持久化到磁盘。选择哪一个取决于您希望完成的具体操作

有关其他信息,请参见以下页面:


你的Button2\u Click方法真的被调用了吗?当然,你必须将它添加到按钮的Click事件中,尽管这可能由设计者或自己编写代码来完成。对于每个请求,都会创建一个代码隐藏文件的新实例,因此如果
Class1
也会创建新实例。那么,好吧,谢谢