Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.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/35.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# 如何在asp.net中访问同一类的其他方法中的页面加载方法_C#_Asp.net - Fatal编程技术网

C# 如何在asp.net中访问同一类的其他方法中的页面加载方法

C# 如何在asp.net中访问同一类的其他方法中的页面加载方法,c#,asp.net,C#,Asp.net,我在页面加载中有一个方法: protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { IEnumerable<int> Ids = GetIds(); } } public IEnumerable<int> GetIds() { IEnumerable<int> Ids; using () {

我在页面加载中有一个方法:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        IEnumerable<int> Ids = GetIds();

    }
}
public IEnumerable<int> GetIds()
{
    IEnumerable<int> Ids;
    using ()
    {
        //query to get data from back end
    }
    return Ids;
}
受保护的无效页面加载(对象发送方,事件参数e)
{
如果(!IsPostBack)
{
IEnumerable id=GetIds();
}
}
公共IEnumerable getId()
{
IEnumerable ID;
使用()
{
//查询以从后端获取数据
}
返回ID;
}
如何在同一类的其他方法中使用页面加载Ids列表?是否可能


实际上,我试图在页面加载时一次加载后端的所有数据,然后在同一类的不同方法中使用它们。

在类中将其声明为全局变量

IEnumerable<int> Ids;
protected void Page_Load(object sender, EventArgs e)
        {

            if (!IsPostBack)
            {
                 Ids = GetIds();

             }
    }
 public IEnumerable<int> GetIds()
   {
        IEnumerable<int> IdsToReturn;
        using ()
        {
               //Here you can get Ids;  
               //query to get data from back end
        }
        return IdsToReturn;
    }
IEnumerable ID;
受保护的无效页面加载(对象发送方、事件参数e)
{
如果(!IsPostBack)
{
Ids=GetIds();
}
}
公共IEnumerable getId()
{
i可数IdsToReturn;
使用()
{
//在这里你可以得到身份证;
//查询以从后端获取数据
}
返回IdsToReturn;
}

如果您只是使用变量来存储IDs值,它将不会被持久化,并且在下一次回发中将为空

您可以使用ViewState跨回发持久化数据,例如:

private List<int> IDs
{
    get{ return (List<int>)ViewState["IDs"]; }
    set{ ViewState["IDs"] = value; }
}

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        IDs = GetIds();
        //IDs will be available in the next postbacks
    }
}
私有列表ID
{
获取{return(List)ViewState[“IDs”];}
设置{ViewState[“IDs”]=value;}
}
受保护的无效页面加载(对象发送方、事件参数e)
{
如果(!IsPostBack)
{
IDs=GetIds();
//ID将在下一次回发中可用
}
}

为什么不将它们存储在类的字段中?@Harshit检查下面的答案。@Abi-名称是类字段,而不是全局变量。它可以从同一个类中访问。为什么要在
页面加载中这样做?在需要的地方这样做,例如在按钮单击事件处理程序方法中。不管怎样,每次回发时它都是空的,不确定是否需要。@TimSchmelter,我在那个类中有一个方法,它有一个foreach,它从后端验证数据。所以我想是喜欢,而不是来回发送。在页面加载时加载它,并在方法中使用它。获取的数据是静态的,它不会改变。嗯,这在每次回发时都是空的。相反,我建议只在需要的地方加载,而不是总是在页面加载中加载。如果用户在按钮上单击f.e.,则应将其加载到按钮单击事件处理程序方法中。