开发者

How to postback aspx page in iframe?

开发者 https://www.devze.com 2023-03-01 14:52 出处:网络
I have an iframe in my main aspx page and this iframe has also a aspx page. iframe\'s page has some controls and main aspx page has a submit button on it. Now I want to postback iframe\'s page on subm

I have an iframe in my main aspx page and this iframe has also a aspx page. iframe's page has some controls and main aspx page has a submit button on it. Now I want to postback iframe's page on submit button's click event using javascript. So that main page remain static and iframe's page goes for a postback

UPDATE

Thanks @Kevin Babcock and @Bala R

Suppose if I need to perform a button 开发者_如何学Go(which is in iframe) click event through main page


From javascript you can try something like

document.frames["iframeid"].document.forms[0].submit();


In the parent page(Parent.aspx page) contains one iframe page(FrameChild.aspx page), when you need we need to call a method of iframe button event, then we have to follow like this.

In the parent page javascript method call like this:

<script type="text/javascript" language="javascript">
    function functionName()    {
        document.getElementById(iframeID).contentWindow.MyIFrameFunction(); 
    }

iframeID is the frame id, MyIFrameFunction() is the name of javascript function in the FrameChild.aspx, and call the functionName() method through the button of parent page, which inturn call the below MyIFrameFunction() of the child .js function.

In the child page(FrameChild.aspx) should contain one function.

<script type="text/javascript" language="javascript">
    function MyIFrameFunction() {            
        __doPostBack('btnRenew', 'passparameter');
    }
</script>

assume one button in FrameChild.aspx.

<asp:Button ID="btnRenew" runat="server" OnClick="btnRenew_Click" />

code behind of FrameChild.aspx page.

protected void Page_Load(object sender, System.EventArgs e)
{       
    string target = Request["__EVENTTARGET"]; //btnRenew
    string paremeter = Request["__EVENTARGUMENT"];  //passparameter
    if (!string.IsNullOrEmpty(target) && !string.IsNullOrEmpty(arg))
    {
        btnRenew_Click(sender, e);
    }
}

public void btnRenew_Click(object sender, EventArgs e) { }

The above code work for me.


Try the following:

window.frames[0].document.forms[0].submit();

This assumes the following things:

  • you don't have multiple iframes on your page (if so, you need to reference the correct one in the frames array)
  • you don't have multiple forms in your iframe (if so, you need to reference the correct one in the forms array)
  • the page you have loaded in the iframe is loaded from the same domain, port, and protocol (otherwise, you may not be able to access the iframe content due to browser security)


Add a button to your page and call it something like ID="btn_ParentSubmit".
Let's say you named your iframe ID="iframeTest"
In your Page_Load() add this:

if (IsPostBack == false)
{
    //Either place the button in an UpdatePanel (so it won't reload the iFrame) -OR- add "return false;" to prevent the post-back and let the iFrame submit itself. - 09/25/2012 - MCR.
    btn_ParentSubmit.OnClientClick = "javascript:document.getElementById('" + iframeTest.ClientID + "').contentDocument.forms[0].submit(); return false;"
}


Every Browser Supported

 window.frames[0].document.getElementById('btnSave').click();  

or

 window.frames['iframename'].document.getElementById('btnSave').click();
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号