2016-03-15 98 views
1

我有一些名爲myUserControl的ASP.NET用戶控件。如何從用戶控件的父頁面調用JavaScript函數?

我也有一些aspx頁面,名爲myAspxPage

myAspxPage包含myUserControlmyAspxPage包含此javascript函數:

 function SetProgressBar() 
    { 
      //some logic   
    } 

在某些時候我需要調用SetProgressBar SCRIPT關閉該按鈕時:

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

被點擊myUserControl

我tryed這一點:

OnClientClick="parent.SetProgressBar()" 

這:

OnClientClick="SetProgressBar()" 

但上面的例子不能工作。

所以我的問題是任何想法如何在用戶控件的父頁面調用JavaScript函數?

+0

「上面的例子不行」 - 基於什麼?第二個變種很好。 – Igor

回答

2

我認爲,如果你添加

ClientIdMode="static" 

到您的按鈕,並採取了的OnClientClick =「」,所以它看起來是這樣的:

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

,然後的onclick直接在這樣的JavaScript中使用:

document.getElementById("prevItem").onclick = function SetProgressBar(){ 

// some logic 

} 

這應該工作...

1

當用戶控件添加到任何aspx頁面內時,它不是一個單獨的頁面,所有內容都呈現爲一個頁面,因此簡而言之,在aspx頁面和usercontrol之間沒有父子類型的東西。

你應該可以從usercontrol調用任何javascript函數。

ClientIDMode =如果您使用onClientClient =調用函數,則不需要static。

因此,爲了測試函數是否被觸發,請在函數的第一行中添加一個警告,看看它是否得到警報。

相關問題