C# 如何使对象在整个页面中可见?
我需要一个关于这个基本主题的手,因为我对网页很陌生C# 如何使对象在整个页面中可见?,c#,asp.net,C#,Asp.net,我需要一个关于这个基本主题的手,因为我对网页很陌生 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { UserLogin ObjUser = new UserLogin(); Persona ObjPersona = new Persona(); DataSet ds = new Data
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
UserLogin ObjUser = new UserLogin();
Persona ObjPersona = new Persona();
DataSet ds = new DataSet();
string UserName = null;
UserName = WindowsIdentity.GetCurrent().Name;
UserName = Regex.Replace(UserName, ".*\\\\(.*)", "$1", RegexOptions.None);
ds = ObjUser.GetUserData(UserName);
ObjPersona.UserName = UserName;
ObjPersona.RealName = ds.Tables[0].Rows[0][0].ToString();
ObjPersona.Ranking = ds.Tables[0].Rows[0][1].ToString();
if (((bool)ds.Tables[0].Rows[0]["TNT"] == false)) ObjPersona.TNT = false;
else ObjPersona.TNT = true;
if (((bool)ds.Tables[0].Rows[0]["TLG"] == false)) ObjPersona.TLG = false;
else ObjPersona.TLG = true;
if (((bool)ds.Tables[0].Rows[0]["NEG"] == false)) ObjPersona.Negocios = false;
else ObjPersona.Negocios = true;
if (((bool)ds.Tables[0].Rows[0]["RES"] == false)) ObjPersona.Residenciales = false;
else ObjPersona.Residenciales = true;
if (((bool)ds.Tables[0].Rows[0]["BO"] == false)) ObjPersona.BO = false;
else ObjPersona.BO = true;
if (((bool)ds.Tables[0].Rows[0]["BOA"] == false)) ObjPersona.BOA = false;
else ObjPersona.BOA = true;
ObjUser.CreateRegister(ObjPersona);
}
}
页面加载后的简单执行。存储过程填充一个数据集,然后我使用该数据集将数据放入对象中,在本例中为ObjPersona
现在,当我打算在另一个调用中使用ObjPersona时,让我们假设一下
protected void BtnClose_Click(object sender, EventArgs e)
{
ObjUser.UpdateRegister(ObjPersona);
LblClose.Text = "Sesión Cerrada";
}
它不起作用,因为里面没有数据。(当我想使用对象内的数据时,点击错误)
我想调用一次获取用户数据的过程(在本例中是页面加载),然后从中使用它。如何访问在另一个控件中调用的数据
谢谢。将为每个请求创建一个新的asp.net页面对象实例。每次回发到页面时,都会调用
Init
,Load
,EventHandler。您不是在处理同一个对象
如果您在上一次请求期间填充了成员变量,则这次该变量将不可用
您需要使用一些方法跨回发持久化数据
Asp.net提供了两种内置方法来完成此操作。一个是视图状态
,另一个是会话
。会话变量存储在服务器上,ViewState
数据存储在表单中的隐藏输入变量中
如果该
数据集中有大量数据
,请避免将其放入视图状态
。这将创建一个大的视图状态,并使页面加载变慢。非常感谢,数据集中保存的数据并没有那么多。将花一些时间阅读有关Session和ViewState的信息,以确定哪个更适合此项目。