从本页访问其他页面控件

时间:2014-02-19 10:12:01

标签: c# asp.net

第1页 - Ticket.aspxDropDownList1ModalPopUpextender,ID为mpe

第2页 - Customer.aspxbtnSave

下拉列表的索引更改事件会弹出mpe,其中包含iframe。此iframe加载Customer.aspx

我正在尝试访问按钮点击事件中的page1控件,但无法访问。

Customer.aspx.cs:

protected void btnSave_Click()
{
  Ticket page = new Ticket();
  ModalPopUpExtender mpe = (ModalPopUpExtender)page.FindControl("mpe");
  DropDownList ddl = (DropDownList)page.FindControl("DropDownList1");

  //error here - Object reference not set to an instance

    mpe.hide();

    ddl.selectedindex=0;
}

为什么这不起作用。使用Session变量应该正常吗?

2 个答案:

答案 0 :(得分:0)

您可以使用Server.Transfer而不是Response.Redirect,然后您可以在当前页面中找到该控件。 像:

TextBox tb = (TextBox)PreviousPage.FindControl("textbox1");

编辑:

if (Page.PreviousPage != null)
{
    DropDownList ddl1 = 
        (DropDownList)Page.PreviousPage.FindControl("DropDownList1");
    if (ddl1 != null)
    {
        Label1.Text = ddl1.SelectedItem.Text; //your logic
    }
}

答案 1 :(得分:0)

您正在尝试的内容可能无法从服务器端进行,但可以通过一些小的javascript轻松完成。这是一个link,您可以在其中获得一段代码。

希望这有帮助。