繁体   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