将list1.aspx中的列表框传递给page2.aspx

时间:2015-11-29 11:06:28

标签: c#

我已经尝试过这个论坛的一些建议但上述情况无济于事。

我收到错误代码:

  

对象引用未设置为对象的实例。

,它突出显示的代码行是:

MessageLabel2.Text = "Your 1st prod " + myList[0] + myList[1] + ".";

我的设置如下。 Page1有Listbox1,我可以看到它包含我要传递给page2的内容。 第1页上的Button1执行PostBackUrl =" Page2.aspx" />点击时

后面的Page1代码确实:

public partial class _Default : System.Web.UI.Page
{
   public static List<string> myList = new List<string>();

protected void Button1_Click(object sender, EventArgs e)
    {
        //TRANSFER TO THE NEXT WEB PAGE 

        for (int i = 0; i < ListBox1.Items.Count; i++)
            myList.Add(ListBox1.Items[i].ToString());
        Session["Finallist"] = myList;
        //Response.Redirect("Page2.aspx");

Page2还有一个Listbox2和一个MessageLabel2,我使用MessageLabel2来简单地显示像&#34这样的消息;你在Page2&#34; (和其他人)在Page_load上。 代码背后是:

public partial class Page2 : BasePage
    {
        public static List<string> myList = new List<string>();

protected void Page_Load(object sender, EventArgs e) 
        {
            MessageLabel2.Text = "You are in Page2 ";
             myList = (List<string>)Session["Finallist"];

     MessageLabel2.Text = "Your 1st prod " + myList[0] + myList[1] + ".";

此外,我甚至认为给page1一个表格ID =&#34; Form1&#34;和第2页表格ID =&#34;表格2&#34;将使我能够做类似Form2.Listbox2 = Form1.Listbox1的事情,但这也不会削减它。 您将通过注释掉的代码看到我尝试了几种解决方法。 任何帮助/想法非常感谢。

更多信息: 感谢rummykahn和Oguz的建议。 我必须承认Oguz我无法解决如何使用字符串方法做出你的建议(&#34;仅通过它们的值类型复制列表中的项目(字符串值&#34;)....你能详细说明吗?请注意,Listbox1将包含1到5行之间的任何数字。 根据rummykahn的建议,我修改了我的代码以测试Listbox条目实际上是那里(并且它们是)然后我添加了另一个&#34; debug&#34;用于测试myList确实具有条目的代码行 - 他们做到了。 我通过取出PostBackUrl =&#34; Page2.aspx&#34; /&gt;做了这个测试。 以下是我用来证明它的代码:

protected void Button1_Click(object sender, EventArgs e)
    {
         for (int i = 0; i < ListBox1.Items.Count; i++)
            myList.Add(ListBox1.Items[i].ToString());

      //  MessageLabel.Text = "Your listbox1 entry 0 is " + ListBox1.Items[0].ToString(); //Tested and Gets 1st row ok
        MessageLabel.Text = "Your myList entry 0 is " + myList[0]; // works also
        Session["Finallist"] = myList;

所以我得出结论,会议[&#34; Finallist&#34;] = myList;在第1页中,代码不会移交给具有以下内容的第2页代码:

protected void Page_Load(object sender, EventArgs e) 
        {
            MessageLabel2.Text = "You are in Page2 ";
             myList = (List<string>)Session["Finallist"];

...这就是为什么我的行...... MessageLabel2.Text =&#34;你的第一个产品&#34; + myList [0]; 产生我们看到的错误。

0 个答案:

没有答案