从一个Web表单调用按钮单击事件到另一个Web表单

时间:2015-02-24 11:23:36

标签: c# asp.net button web-applications

我正在开发一个包含多个Web表单的Web应用程序。 我需要的是: - 我的网页表单中包含IFrame(它将打开另一个带有少量文本框和按钮控件的aspx页面)并带有关闭按钮。

    If i click on the button in the child form(Iframe form), once complete its action it should call the close button function of the parent form.

here is the code.

父表单代码

protected void BTNCClose_Click(object sender, EventArgs e)
            {
                MethodToExecute();
            }
            public void MethodToExecute() //call this method
            {
                UPCCharges.Update();
                if (HttpContext.Current.Session["CCost"] != null)
                {
                    TxtCCost.Text = Session["CCost"].ToString();
                }
                if (HttpContext.Current.Session["CYeild"] != null)
                {
                    TxtCYeild.Text = Session["CYeild"].ToString();
                }
                if (HttpContext.Current.Session["CName"] != null)
                {
                    TxtCName.Text = Session["CName"].ToString();
                }
                if (TxtCName.Text != "" && TxtCYeild.Text != "" && TxtCCost.Text != "")
                {
                    TxtCrJobId.Text = Session["CJobID"].ToString();
                    Session.Remove("CCost"); Session.Remove("CYeild");
                    Session.Remove("CName"); Session.Remove("CJobID");

                }
                Diva.Visible = false;
                IFMC.Visible = false;

            }

这是儿童表格(在IFrame内)

protected void BTNCCloseChild_Click(object sender, EventArgs e)
{                
    for (int vLoop2 = 0; vLoop2 < gvInner.Items.Count; vLoop2++)
    {
       if (TxtTotalCFrom1 != null && TxtTotalCFrom2 != null)
       {
           TextBox TxtTotalCFrom = (TextBox)gvInner.Items[vLoop2].FindControl("TxtTCFrom");
           TextBox TxtTotalCYeild = (TextBox)gvInner.Items[vLoop2].FindControl("TxtTCYeild");
           Session["CCost"] = (mobjGenlib.ConvertDecimal(TxtTFrom1.Text) + mobjGenlib.ConvertDecimal(TxtTFrom2.Text)).ToString();
           Session["CYeild"] = (mobjGenlib.ConvertDecimal(TxtRO.Text) - mobjGenlib.ConvertDecimal(TxtTFrom.Text)).ToString();
           Session["CName"] = gvInner.Items.Count.Items[vLoop2].Cells[1].Text;
           Session["CJobID"] = gvInner.Items.Count.Items[vLoop2].Cells[2].Text;
       }
    }

 //after this i want to call that parent form BTNCClose_Click
}

任何人都可以提前帮助我解决这个问题。

2 个答案:

答案 0 :(得分:1)

这是您可以处理的一种方式

在子表单的BTNCCloseChild_Click事件中,在末尾添加以下代码

string script =@"$('the selector of your parent window button',
                    window.parent.document).click();";
Page.ClientScript.RegisterStartupScript(this.GetType(), "CloseParent", script);

您必须更改父窗口按钮的选择器,以便适​​当地使用jquery选择器来唯一选择父窗体的按钮。

如果存在嵌套的iframe,则可能必须使用window.top而不是window.parent

答案 1 :(得分:-2)

添加以下行:

ScriptManager.RegisterStartupScript(this,typeof(string),“script”,“parent.location.href = parent.location.href;”,false);

之后或代替此  //在此之后我想调用那个父表单BTNCClose_Click

在会话对象中存储值后,它将刷新父页面,并且值将更新。