我有一些名为myUserControl
的ASP.NET用户控件。
我还有一些名为myAspxPage
的aspx页面。
myAspxPage
包含myUserControl
,myAspxPage
也包含此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函数?
答案 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。
因此,为了测试功能是否被触发,请在功能的第一行发出警告,看看它是否有警报。