通过调用CodeBehind调用JavaScript打开弹出窗口
我正在尝试通过在按钮点击事件中调用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:无法读取NULL的属性(读取'open'')
error。
但是,如果我将按钮本身上的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>
I am trying to open a popup window by calling a JavaScript function in CodeBehind (vb.net) on a button click event.
The idea is that I click the button, the button click event does a bunch of stuff, then fires the javascript function to open the popup window.
Javascript:
function openSync() {
var companyId = $("#<%= txtCompanyID.ClientID%>").val();
$find("<%= RadWindowManager1.ClientID%>").open("SyncDatabases.aspx?CompanyID=" + encodeURIComponent(companyId), "winSyncProcess");
}
I can call the openSync
function in CodeBehind using:
ScriptManager.RegisterStartupScript(Me, Me.GetType(), "open", "openSync();", True)
When attempting this, I am getting a TypeError: Cannot read properties of null (reading 'open')
error.
BUT, if I assign the OnClientClick
property on the button itself to
OnClientClick="openSync(); return false;"
the Javascript works fine, and the popup window appears as it should, but doing so ignores the CodeBehind button click event and doesn't do the things it's suppose to do.
I am using a 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>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
最终使用
scriptManager.registerStartupScript(me,me.getType(),“ settimeout(function(){opensync();},100),100);”,opensync,true)
>这解决了这个问题。
Ended up using
ScriptManager.RegisterStartupScript(Me, Me.GetType(), "setTimeout(function () { openSync(); }, 100);", openSync, True)
and that solved the issue.