如何从用户控件调用父页面中的 javascript 函数

How to call javascript function in the parent page from user control?

本文关键字:javascript 函数 用户 控件 调用      更新时间:2023-09-26

我有一些名为 myUserControl 的 ASP.NET 用户控件。

我还有一些名为 myAspxPage 的 aspx 页面。

myAspxPage包含myUserControlmyAspxPage包含以下javascript函数:

     function SetProgressBar() 
     {
          //some logic          
     }

在某些时候,当这个按钮时SetProgressBar我需要调用javascipt函数:

 <asp:LinkButton ID="prevItem" runat="server" ToolTip="previous" Style="color: #000000;" OnClientClick="to call SetProgressBar function"> << </asp:LinkButton>

myUserControl 中单击。

我试过这个:

  OnClientClick="parent.SetProgressBar()"

而这个:

OnClientClick="SetProgressBar()"

但是上面的例子不起作用。

所以我的问题是我知道如何从用户控件调用父页面中的 javascript 函数?

我想

如果你添加

ClientIdMode="static"

并取出 OnClientClick=",因此它看起来像这样:

 <asp:LinkButton ID="prevItem" runat="server" ToolTip="previous" Style="color: #000000;" ClientIdMode="static"> << </asp:LinkButton>

然后直接在 JavaScript 中使用 onclick,如下所示:

document.getElementById("prevItem").onclick = function SetProgressBar(){
// some logic
}

这应该可以...

用户控件在任何 ASPX 页中添加时都不是单独的页面,所有内容都呈现为单个页面,因此简而言之,ASPX 页面和用户控件之间没有父子类的东西。

你应该能够从用户控制调用任何javascript函数。

如果使用 onClientClient= 调用函数,则不需要 ClientIDMode=static。

因此,要测试函数是否被触发,请在函数的第一行放置警报,看看它是否发出警报。