【问题标题】:Referencing an ArrayList Object from a different .aspx page it was created in从创建它的不同 .aspx 页面引用 ArrayList 对象
【发布时间】:2013-01-05 12:19:26
【问题描述】:

我有一个数组列表,我在其中添加了一个代码列表。当我重定向到不同的页面(aspx)时,我希望能够从其他页面访问添加到数组列表中的这些代码。

除了创建单独的 Class.cs 文件之外,这是最简单的方法。

问候

【问题讨论】:

    标签: c# asp.net arraylist


    【解决方案1】:

    您可以使用Session 变量:

    ArrayList myArrayList = new ArrayList();
    //add items to arraylist
    Session["MyArrayList"] = myArrayList;
    

    然后只需在第二页上切换它即可将其取回:

    ArrayList myArrayList = Session["MyArrayList"] as ArrayList;
    //check to see if arraylist is null before using it
    if (myArrayList != null)
    {
        //array list is not null, safe to use
    }
    

    【讨论】:

    • 我建议使用... = Session["MyArrayList"] as ArrayList;。这样,如果由于某种原因会话变量为空,您就不会抛出错误。用户总是喜欢优雅的错误处理:)。
    • 如果有人使用了Array List的上一页公共属性怎么办?
    • 抱歉,我不完全确定您的意思。会话状态对每个用户都是唯一的,因此每个用户都可以拥有自己的此 ArrayList 副本。
    【解决方案2】:

    为此,您需要使用 Session,我建议使用以下代码:

    您从其重定向到另一个页面的第 1 页代码:

     System.Collections.ArrayList objArrayList = new System.Collections.ArrayList();
            objArrayList.Add("DEMO1");
            objArrayList.Add("DEMO2");
            Session["ArrayList"] = objArrayList;
    

    您从另一个页面重定向到的第 2 页代码:

     System.Collections.ArrayList objArrayList1 = Session["ArrayList"] as System.Collections.ArrayList;
    

    【讨论】:

    • 交叉回帖怎么样? Gaurav Rajput 如果上一页有 ArrayList 的公共属性??
    • @Abdul Majid:如果我正确理解了您的观点,那么场景将如下所示:假设有两个页面 Page1 具有 ArrayList 类型的公共属性和 Page2。如果我们实现从 Page1 到 Page2 的跨页面发布,那么这个公共 ArrayList 属性也可以在 Page2 上使用类似 PreviousPage._ArrayList 的语法访问。但为此,我们将被限制使用跨页面发布。
    【解决方案3】:

    即使有一个单独的class,你想要的也不能直接发生(除非它是一个静态属性)。每个请求都会重新创建您的对象。

    解决方法是将您的ArrayList 存储在Session 中。有关会话状态的详细信息,请参阅此 MSDN 链接:http://msdn.microsoft.com/en-us/library/ms178581(v=vs.100).aspx

    【讨论】:

    • 当他使用静态变量时,可能在不同的类中。
    猜你喜欢
    • 1970-01-01
    • 2017-10-12
    • 2016-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多