有一个类
public class TestClass
{
public string EntityCS
{
get;set;
}
}现在我在一个页面内
public tc=new TestClass(); protected void Buttion1_Click
{ tc.EntityCS="AAAAAAAAA";} protected void Buttion2_Click
{ this.Title=tc.EntityCS;} //这个地方字符串为空,有什么办法可以使用tc这个对象在整个页面内有效?
先执行了Button1Click,然后再Button2Click,结果发现Titile为空
public class TestClass
{
public string EntityCS
{
get;set;
}
}现在我在一个页面内
public tc=new TestClass(); protected void Buttion1_Click
{ tc.EntityCS="AAAAAAAAA";} protected void Buttion2_Click
{ this.Title=tc.EntityCS;} //这个地方字符串为空,有什么办法可以使用tc这个对象在整个页面内有效?
先执行了Button1Click,然后再Button2Click,结果发现Titile为空
如果重新刷新或者回传要保值的话可以用session
如果页面有开viewstate,你的string类型可以放在viewstate里面public string EntityCS
{
get{return (stirng)ViewState["cs"];}set{Viewstate["cs"]=value;}
}
可以在load里面去放
if(tc != null
{
ViewState["TC"] = tc;
}
else
{
tc = new TestClass();
ViewState["TC"]=tc
}protected void Buttion1_Click
{
TestClass tc = ViewState["TC"] as TestClass ;
if(tc != null)
{
tc.EntityCS="AAAAAAAAA";
}
}
后面应用也这样用
就是放到viewstate里,aspx页面控件能保存值也是这个原因!
在load里面去放
if(tc != null )
{
ViewState["TC"] = tc;
}
else
{
tc = new TestClass("");
ViewState["TC"] = tc;
}这样做根本不行,运行时错误提示:System.Runtime.Serialization.SerializationException: 程序集“WebApplication2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”中的类型“WebApplication2.TestClass”未标记为可序列化
To:ojekleen
public string EntityCS
{
get { return (string)ViewState["cs"]; }
set { ViewState["cs"] = value; } }
}
这样做根本不能编译,错误 当前上下文中不存在名称“ViewState”............
或者Session[“”]保存
还有如果是一个字符传的话 ,那你还可以 定义静态变量存储起来,然后在取
所以你还是在ViewState里面保存"AAAAAAAAA" 吧.在page_Load()里面获取一下就ok了.
Page_Load(){
tc.EntityCS = ViewState["cs"].ToString();
}
从十一月份到现在,看的人挺多,知道答案的人没有
To:
如果要这样的话
我建议建一个类库
然后在web里面应用Dll
在要应用的类里面
引用namespace
public class TestClass
{
public static string EntityCS="";
public string EntityCS
{
get;
return EntityCS;
set;
EntityCS= value;
}
} 现在我在一个页面内
public tc=new TestClass(); protected void Buttion1_Click
{ tc.EntityCS="AAAAAAAAA";} protected void Buttion2_Click
{ this.Title=tc.EntityCS;}
这样就没问题了.