我在页面加载中有一个方法:
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;
}
如何在同一类的其他方法中使用页面加载 ID 列表?是否可以?
实际上我试图在页面加载时立即加载后端的所有数据,然后在同一类的不同方法中使用它们。
答案 0 :(得分:2)
在类中声明它为全局变量。
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;
}
答案 1 :(得分:1)
如果你只是使用一个变量来存储ID值,它将不会被持久化,并且在下一个回发中将为null。
您可以使用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
}
}