目标: - 从服务器端,我需要在IF条件下自动打开一个radwindow(在aspx页面的JavaScript中定义)。
使用的代码: -
在aspx页面中,我将radwindow定义为: -
<telerik:RadWindowManager Skin="WBDA" ID="AssetPreviewManager" Modal="true"
EnableEmbeddedSkins="false" runat="server" DestroyOnClose="true" Behavior="Close"
style="z-index:8000">
<Windows>
<telerik:RadWindow ID="DisclaimerAlertWindow" runat="server" Width="720px" Height="220px"
Modal="true" visibleStatusbar="false" VisibleTitlebar="false" keepInScreenBounds="true" title="Sourav">
</telerik:RadWindow>
</Windows>
</telerik:RadWindowManager>
在JavaScript中,定义了一个用于打开radwindow的函数: -
function openRadWindow()
{
var oWnd = radopen('DisclaimerAlert.aspx, 'DisclaimerAlertWindow');
oWnd.set_title('Access Denied !');
oWnd.Center();
return false;
}
所以在aspx页面的服务器端,在Page Load事件中检查IF条件,然后我调用'openRadWindow()'函数为: -
protected void Page_Load(object sender, EventArgs e)
{
if (fieldValue == "False")
{
string xyz = "<script type='text/javascript' lang='Javascript'>openRadWindow();</script>";
ClientScript.RegisterStartupScript(this.GetType(), "Window", xyz);
}
}
问题: -
但是在运行时,这些JavaScript错误即将来临: -
请帮助我们实现目标。我完全陷入困境。
答案 0 :(得分:2)
看一看,它解释了如何使用ScriptManager.RegisterStartupScript方法:http://www.telerik.com/help/aspnet-ajax/window-troubleshooting-javascript-from-server-side.html.请注意ScriptManager的方法。另请查看Sys.Application.Load事件以防止代码执行得太早。
答案 1 :(得分:2)
您好我想与您分享我的解决方案,仅在Javascript代码中创建RadWindow对话框。
我们需要实现2个方法:一个用于初始化RadWindow对话框,最后一个用于接收关闭RadWindow后返回的参数。您可以在第二步(e.x postback,...)
中执行您想要的操作这是我的代码:
初始化RadWindow对话框:
function openMyDialog(url, args) {
var manageWindow = GetRadWindowManager();
if (manageWindow) {
var radWindow = manageWindow.open(url, "<your_dialog_name>");
if (radWindow) {
radWindow.set_initialBehaviors(Telerik.Web.UI.WindowBehaviors.None);
radWindow.set_behaviors(Telerik.Web.UI.WindowBehaviors.Move + Telerik.Web.UI.WindowBehaviors.Close + Telerik.Web.UI.WindowBehaviors.Resize);
radWindow.setActive(true);
radWindow.SetModal(true);
radWindow.center();
radWindow.set_visibleStatusbar(false);
radWindow.set_keepInScreenBounds(true);
radWindow.set_minWidth(640);
radWindow.set_minHeight(480);
radWindow.setSize(640, 480);
radWindow.set_destroyOnClose(true);
radWindow.add_close(closeMyDialog);//after closing the RadWindow, closeMyDialog will be called
radWindow.argument = args;//you can pass the value from parent page to RadWindow dialog as this line
}
}
}
关闭RadWindow对话框:
function closeMoveProjectDialog(sender, args) {
var objArgs = args.get_argument();
//objArgs variable stored the values returned from the RadWindow
//you can use it for your purpose
}
如何称呼它? 您可以将open方法放入预期的方法中。在我这边,我有一个如下所示的方法,我将以这种方式调用RadWindow:
function ShowForeignKeyFrontEditSingle(param1, param2){
var url = "ForeignKeyFrontEditSingle.aspx";
var objArgs = new Array();
objArgs[0] = param1;
objArgs[1] = param2;
openMyDialog(url, objArgs);
return;
}
当然,您必须声明RadWindowManager控件
function GetRadWindowManager() {
return $find("<%=your_radwindow_manager_control.ClientID%>");
}