从iframe调用OnServerClick不工作

Calling OnServerClick from iframe Not Working

本文关键字:工作 OnServerClick 调用 iframe      更新时间:2023-09-26

我有一个vb.net服务器端函数,我需要从iframe调用。

功能如下:

  Sub ChangeView(sender As Object, e As EventArgs)

    If MultiView1.ActiveViewIndex = 0 Then
        MultiView1.SetActiveView(View2)
    ElseIf MultiView1.ActiveViewIndex = 1 Then
        MultiView1.SetActiveView(View3)
    ElseIf MultiView1.ActiveViewIndex = 2 Then
        MultiView1.SetActiveView(View1)
    End If
  End Sub

包含multiview和iframe的主体:

<body>
   <form id="form1" runat="server">
       <asp:ScriptManager ID="SM1" runat="server" />
  <iframe src="Page/index.html" width="100%" height="650px" scrolling="no" frameborder="0"></iframe>
<asp:UpdatePanel ID="UP1" runat="server">
    <ContentTemplate>
     <asp:MultiView ID="MultiView1" runat="server" ActiveViewIndex="0">
        <asp:View ID="View1" runat="server">
            This is View1.
        </asp:View>
        <asp:View ID="View2" runat="server">
            This is View2.
        </asp:View>
        <asp:View ID="View3" runat="server">
            This is View3.
        </asp:View>
    </asp:MultiView>


       </ContentTemplate>
    </asp:UpdatePanel>
   </form>
</body>

iframe来源:

<nav>
  <ul id="nav">
    <li><a  onserverclick="ChangeView" runat="server">Home</a></li>
    <li><a href="#">About</a>
      <ul>
        <li><a href="#">Message</a></li>
        <li><a href="#">Mission, Visions, Goals</a></li>
      </ul>
    </li>
  </ul>
</nav>

免责声明:我已经为此工作了三天,虽然它可能很简单,但我正在努力解决它。

对不起,还没有迁移到。net 4.5,所以不熟悉onserverclick…但是你正在调用ChangeView通过点击一个超链接在iframe -并期望在包含iframe被调用的页面中的一个函数?

在你的iframe页面中,代码编译吗?它能"看到"父页面上的MultiView1控件吗?我希望当你点击iframe内的超链接时,你必须沿着以下行运行一些javascript:

window.parent.document.getElementById('somebutton').click();

在父页面上有一个不可见的按钮,其click事件调用ChangeView();