2014-01-22 96 views
0

我想以編程方式將按鈕添加到頁面並且單擊它們時我想調用父窗口中的函數(按鈕位於jQuery對話框中)函數可以工作很好,因爲我一直在用另一種方式,但是我在從代碼隱藏中將JS添加到onClientClick時遇到問題。將JS OnClientClick添加到代碼隱藏按鈕中的問題

btnLink.OnClientClick = "window.parent.openlink(http://www.google.co.uk, test, 300, 300);return false;"; 

我看過的開發工具和它不是設置的OnClientClick而是使用的onclick,我不知道這是否會導致問題。

這是父頁面上的按鈕的一個例子,它是如何產生的(工作模型):

<input name="btnOpen" class="DataControlButtons" id="btnOpen" onclick="openlink('CustomerTypes-Open.aspx', 'Open', '1000', '470'); return false;WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;btnOpen&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))" type="submit" value="Open"> 

這是不工作的按鈕是如何產生的:

<input name="ctl02" onclick="window.parent.openlink(http://www.google.co.uk, test, 300, 300);return false;" type="submit" value="Configuration"> 
+0

沒關係,因爲OnClick已經被服務器端事件佔用,ASP.NET中的OnClientClick存在。在瀏覽器中,它應該是'onclick'。問題是什麼? – Andrei

+0

當我點擊按鈕時它沒有做任何事情,甚至沒有發生錯誤。 – connersz

+0

首先,如果你在jQuery對話框中 - 你基本上在同一個窗口中,而不是在瀏覽器彈出窗口中。所以'父母'應該被刪除。另外'openlink'還不清楚,瀏覽器只支持「打開」彈出窗口。 – Andrei

回答

2

函數字符串參數缺少引號,導致此調用爲無效的JavaScript。嘗試將它們轉換爲有效的字符串:

btnLink.OnClientClick = 
    "window.parent.openlink('http://www.google.co.uk', 'test', 300, 300);return false;"; 
+0

包裝他們實際上似乎工作。 – connersz

+0

如果您認爲我的問題是有效的,您是否介意爲我投票,再次感謝。 – connersz

相關問題