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

时间:2016-03-15 17:16:27

标签: javascript asp.net

我有一些名为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函数?

2 个答案:

答案 0 :(得分:2)

我想如果你添加

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

}

这应该有用......

答案 1 :(得分:1)

当在任何aspx页面中添加它时,Usercontrol不是一个单独的页面,所有内容都呈现为单个页面,所以简而言之,aspx页面和用户控件之间没有父子类型。

您应该可以从usercontrol调用任何javascript函数。

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

因此,为了测试功能是否被触发,请在功能的第一行发出警告,看看它是否有警报。