簡體   English   中英

通過從 CodeBehind 調用 Javascript 打開一個彈出窗口

[英]Opening a popup by calling Javascript from CodeBehind

我試圖通過在按鈕單擊事件上調用 CodeBehind (vb.net) 中的 JavaScript 函數來打開一個彈出窗口。

我的想法是我單擊按鈕,按鈕單擊事件會做很多事情,然后觸發 javascript 函數以打開彈出窗口。

Javascript:

function openSync() {
            var companyId = $("#<%= txtCompanyID.ClientID%>").val();
            $find("<%= RadWindowManager1.ClientID%>").open("SyncDatabases.aspx?CompanyID=" + encodeURIComponent(companyId), "winSyncProcess");
        }

我可以使用以下方法在 CodeBehind 中調用openSync函數:

 ScriptManager.RegisterStartupScript(Me, Me.GetType(), "open", "openSync();", True)

嘗試此操作時,我收到TypeError: Cannot read properties of null (reading 'open')錯誤。

但是,如果我將按鈕本身的OnClientClick屬性分配給

OnClientClick="openSync(); return false;"

Javascript 工作正常,彈出窗口按原樣顯示,但這樣做會忽略 CodeBehind 按鈕單擊事件,並且不會做它應該做的事情。

我正在使用 RadWindowManger:

    <telerik:RadWindowManager ID="RadWindowManager1" runat="server" EnableShadow="true">
        <Windows>
            <ic:PopupWindow ID="winSyncProcess" runat="server" Width="800px" Height="600px" OnClientClose="OnSyncProcessClose"></ic:PopupWindow>
        </Windows>
    </telerik:RadWindowManager>

最終使用ScriptManager.RegisterStartupScript(Me, Me.GetType(), "setTimeout(function () { openSync(); }, 100);", openSync, True)解決了這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM