[英]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.