从iframe调用OnServerClick不起作用

时间:2014-08-13 08:18:33

标签: javascript asp.net vb.net html5 iframe

我有一个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

包含多视图和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>

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

1 个答案:

答案 0 :(得分:0)

很抱歉,没有移动到.net 4.5但是不熟悉onserverclick ...但是你通过点击iframe中的超链接来调用ChangeView - 并期望在包含iframe的页面中调用一个函数?

在您的iframe页面中,代码是否已编译?可以在父页面上“看到”MultiView1控件吗?我希望当你点击iframe中的超链接时,你必须按照以下方式运行一些javascript:

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

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