C# 如何在回发之间保持全局变量(即结构变量)的值?
我对这一点还不熟悉,已经很幸运地找到了这一点:( 假设我已经全局定义了一个结构数组,并在Ajax ModalPopupXtender上用数据填充了该数组。然后,我有一个ddl_SelectedIndexChanged事件,该事件执行回发,并且似乎回收了我的数组 是否有一种方法可以触发ddl_SelectedIndexChanged事件来执行一些代码而不进行回发?或者有一种简单的方法可以使struct类型的数组保留其值 (顺便说一句,我正在创建一个网站)C# 如何在回发之间保持全局变量(即结构变量)的值?,c#,asp.net,ajax,postback,C#,Asp.net,Ajax,Postback,我对这一点还不熟悉,已经很幸运地找到了这一点:( 假设我已经全局定义了一个结构数组,并在Ajax ModalPopupXtender上用数据填充了该数组。然后,我有一个ddl_SelectedIndexChanged事件,该事件执行回发,并且似乎回收了我的数组 是否有一种方法可以触发ddl_SelectedIndexChanged事件来执行一些代码而不进行回发?或者有一种简单的方法可以使struct类型的数组保留其值 (顺便说一句,我正在创建一个网站) 提前感谢…您可以将阵列存储在视图状态中,如
提前感谢…您可以将阵列存储在
视图状态中,如下所示:
ViewState["arrayName"] = array;
其中array
是数组的名称。然后可以使用ViewState[“arrayName”]
轻松检索该数组。如果数组是字符串数组,则可以轻松检索该数组,如下所示:
string[] arr = ViewState["arrayName"] as string[];
有关ViewState
的更多文档,请查看。您可以将数组存储在ViewState
中,如下所示:
ViewState["arrayName"] = array;
其中array
是数组的名称。然后可以使用ViewState[“arrayName”]
轻松检索该数组。如果数组是字符串数组,则可以轻松检索该数组,如下所示:
string[] arr = ViewState["arrayName"] as string[];
有关ViewState
的更多文档,请查看。您可以将数组存储在ViewState
中,如下所示:
ViewState["arrayName"] = array;
其中array
是数组的名称。然后可以使用ViewState[“arrayName”]
轻松检索该数组。如果数组是字符串数组,则可以轻松检索该数组,如下所示:
string[] arr = ViewState["arrayName"] as string[];
有关ViewState
的更多文档,请查看。您可以将数组存储在ViewState
中,如下所示:
ViewState["arrayName"] = array;
其中array
是数组的名称。然后可以使用ViewState[“arrayName”]
轻松检索该数组。如果数组是字符串数组,则可以轻松检索该数组,如下所示:
string[] arr = ViewState["arrayName"] as string[];
有关查看状态的进一步文档,请查看。要存储在会话中
Session["ArrayName"] = ArrayVariable;
..将其返回到数组类型中
var array = (ArrayType)Session["ArrayName"];
使用viewState
ViewState.Add("ArrayName", ArrayVariable);
var array= (ArrayType)ViewState["ArrayName"];
如果这仅用于您所在的页面,则应使用ViewState。如果您需要它在整个站点上可用,则您的选项有会话、缓存或数据库。此外,请确保首先检查对象是否可用,如中所示
if (Session["ArrayName"] != null)
var array = (ArrayType)Session["ArrayName"];
..否则您将成为对象未设置引用错误的受害者
有关存储在会话中的信息,请参阅本文。
Session["ArrayName"] = ArrayVariable;
..将其返回到数组类型中
var array = (ArrayType)Session["ArrayName"];
使用viewState
ViewState.Add("ArrayName", ArrayVariable);
var array= (ArrayType)ViewState["ArrayName"];
如果这仅用于您所在的页面,则应使用ViewState。如果您需要它在整个站点上可用,则您的选项有会话、缓存或数据库。此外,请确保首先检查对象是否可用,如中所示
if (Session["ArrayName"] != null)
var array = (ArrayType)Session["ArrayName"];
..否则您将成为对象未设置引用错误的受害者
有关存储在会话中的信息,请参阅本文。
Session["ArrayName"] = ArrayVariable;
..将其返回到数组类型中
var array = (ArrayType)Session["ArrayName"];
使用viewState
ViewState.Add("ArrayName", ArrayVariable);
var array= (ArrayType)ViewState["ArrayName"];
如果这仅用于您所在的页面,则应使用ViewState。如果您需要它在整个站点上可用,则您的选项有会话、缓存或数据库。此外,请确保首先检查对象是否可用,如中所示
if (Session["ArrayName"] != null)
var array = (ArrayType)Session["ArrayName"];
..否则您将成为对象未设置引用错误的受害者
有关存储在会话中的信息,请参阅本文。
Session["ArrayName"] = ArrayVariable;
..将其返回到数组类型中
var array = (ArrayType)Session["ArrayName"];
使用viewState
ViewState.Add("ArrayName", ArrayVariable);
var array= (ArrayType)ViewState["ArrayName"];
如果这仅用于您所在的页面,则应使用ViewState。如果您需要它在整个站点上可用,则您的选项有会话、缓存或数据库。此外,请确保首先检查对象是否可用,如中所示
if (Session["ArrayName"] != null)
var array = (ArrayType)Session["ArrayName"];
..否则您将成为对象未设置引用错误的受害者
有关详细信息,请参阅本文。如果是页面级别,请转到viewstate
ViewState["arrayName"] = array;
若它是到不同的页面,那个么它就是通过会话
Session["ArrayName"] = ArrayVariable;
如果是页面级别,则转到viewstate
ViewState["arrayName"] = array;
若它是到不同的页面,那个么它就是通过会话
Session["ArrayName"] = ArrayVariable;
如果是页面级别,则转到viewstate
ViewState["arrayName"] = array;
若它是到不同的页面,那个么它就是通过会话
Session["ArrayName"] = ArrayVariable;
如果是页面级别,则转到viewstate
ViewState["arrayName"] = array;
若它是到不同的页面,那个么它就是通过会话
Session["ArrayName"] = ArrayVariable;
如前所述,我们已经使用ViewState。在页面的类中创建一个属性并读/写该属性。显然,将列表更改为数组的任何类型
public List<string> SomeArray
{
get
{
if (ViewState["SomeArray"] != null)
{
return (List<string>)ViewState["SomeArray"];
}
return null;
}
set { ViewState["SomeArray"] = value; }
}
公共列表数组
{
得到
{
if(ViewState[“SomeArray”!=null)
{
返回(列表)视图状态[“SomeArray”];
}
返回null;
}
设置{ViewState[“SomeArray”]=value;}
}
实际上,当您将值绑定到下拉列表时,下拉列表应将数据保存在viewstate中,除非在页面加载时清除了逻辑。发布页面加载事件可能会确定您的真正问题
更新
尽管再次阅读了您的问题,我可能会错,但如前所述,post code!已经使用了ViewState。在页面的类中创建一个属性并对该属性进行读/写。显然,将列表更改为数组的任何类型
public List<string> SomeArray
{
get
{
if (ViewState["SomeArray"] != null)
{
return (List<string>)ViewState["SomeArray"];
}
return null;
}
set { ViewState["SomeArray"] = value; }
}
公共列表数组
{
得到
{
if(ViewState[“SomeArray”!=null)
{
返回(列表)视图状态[“SomeArray”];
}
返回null;
}
设置{ViewState[“SomeArray”]=value;}
}
实际上,当您将值绑定到下拉列表时,下拉列表应将数据保存在viewstate中,除非在页面加载时清除了逻辑。发布页面加载事件可能会确定您的真正问题
更新
虽然我又读了你的问题,但我还是同意了