有没有办法访问另一个页面中某个页面的视图状态?请详细说明答案,以消除我的疑问,因为我认为ViewState的作用域仅限于页面,不能在页面外访问。
发布于 2010-03-15 04:56:26
您不能直接从一个页面访问另一个页面的ViewState。
如果您想访问一个特定的ViewState值,那么您可以在上下文集合中传递该值,然后在其他页面中访问该值。
在第1页
Context.Items.Add ( "variable" , ViewState["yourvalue"].ToString() );
在第2页
string myValue = Context.Items["variable"].ToString();
发布于 2013-08-29 11:50:28
这也是可行的
FirstPage.aspx (在后台代码中)
public void btnTransfer_Click(object sender, EventArgs e)
{
CompanyInfo comInfo = new CompanyInfo() { ID = 223, Name = "TCS" };
ViewState["ViewStateCompany"] = comInfo;
Server.Transfer("SecondPage.aspx");
}
public CompanyInfo GetViewValue()
{
CompanyInfo comInfo = (CompanyInfo )ViewState["ViewStateCompany"];
return comInfo;
}
SecondPage.aspx (在后台代码中)
protected void Page_Load(object sender, EventArgs e)
{
if (Page.PreviousPage != null)
{
Type ty = Page.PreviousPage.GetType();
MethodInfo mi = ty.GetMethod("GetViewValue");
CompanyInfo comInfo = (CompanyInfo)mi.Invoke(Page.PreviousPage, null);
}
}
CompanyInfo类
public class CompanyInfo
{
public int ID { get; set; }
public string Name { get; set; }
}
https://stackoverflow.com/questions/2445155
复制