日期:2014-05-19  浏览次数:20523 次

问个Viewstate的问题(孟老师和高手们)
在同页面,一个函数体内取得的变量(字符)A   通过ViewState   传导给经回发后的同页面另一函数体内变量B。这代码怎么写?

孟老师的经典中:
ViewState[ "myKey "]   =   "MyData ";
string   myData;
if(ViewState[ "myKey "]!=null)
{
      myData   =   (string)ViewState[ "myKey "];
}

那个是我所说的A   ,那个是我所说的B?   myKey是A   吗?myData   是B吗?
菜鸟啊,不好意思!!!!

------解决方案--------------------
public void MethodA(){
string A= "MyData ";
ViewState[ "myKey "] =A;
}

public void MethodB(){
string B;
if(ViewState[ "myKey "]!=null)
{
B= (string)ViewState[ "myKey "];
}

}
------解决方案--------------------
myData 和 MyData 不是同一个东西吧?
---------------------------------
string myData;
string A= "MyData ";
myData是变量,MyData变量的值,不是一个东西

------解决方案--------------------
在同页面,一个函数体内取得的变量(字符)A 通过ViewState 传导给经回发后的同页面另一函数体内变量B。????
public void A()
{
ViewState[ "myKey "] = "MyData ";
}


public void B()
{
string myData;
if(ViewState[ "myKey "] != " ")
{
myData = ViewState[ "myKey "].ToString();
}

}

是这么个意思吗?



------解决方案--------------------
myKey是全局变量名字,
ViewState[ "myKey "] = "MyData ";
这里意思是给全局变量myKey赋值为“MyData”.。。这里的MyData就是你题目中A变量的值
下面这里string myData;是声明一个局部变量```也就是你题目中的B变量。
if(ViewState[ "myKey "]!=null)//判断全局变量是否为空
{
myData = (string)ViewState[ "myKey "];//不为空,则把全局变量的值赋给myData 变量,也就是B变量。
}

这样就完整地将A变量的值通过全局变量ViewState[ "myKey "]传给了B变量。