我已经尝试过这个论坛的一些建议但上述情况无济于事。
我收到错误代码:
对象引用未设置为对象的实例。
,它突出显示的代码行是:
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]; 产生我们看到的错误。