1

私はウェブページを持っていて、それにスクリプトマネージャーを適用しました。ページの読み込み時に、いくつかの条件をチェックし、コードからJavascript ShowModalDialogを表示していますが、正常に動作しています。

int isAnyNonProdTaskActive = _nonProduction.IsAnyTaskActive(UserIDFromDB);
            if (isAnyNonProdTaskActive > 0)
            {
                //Displays and Logs Message
                _loggerDetails.LogMessage = "EmployeeQuotient.Production.Page_Load()     One NonProduction incomplete task found, NonProductionTimeEntryID : " + isAnyNonProdTaskActive.ToString();
                _writeLog.LogDetails(_loggerDetails.LogLevel_Info, _loggerDetails.LogMessage);

                Session["TaskActiveNonProd"] = isAnyNonProdTaskActive;
                Page page = HttpContext.Current.CurrentHandler as Page;

                //Displays and Logs Message
                _loggerDetails.LogMessage = "EmployeeQuotient.Production.Page_Load()     Opening ElapsedClockNonProd.aspx to complete the incomplete task id :" + isAnyNonProdTaskActive.ToString();
                _writeLog.LogDetails(_loggerDetails.LogLevel_Info, _loggerDetails.LogMessage);

                ScriptManager.RegisterStartupScript(page, page.GetType(), "OpenModalDialog", "<script type=text/javascript>window.showModalDialog('ElapsedClockNonProd.aspx?code=" + isAnyNonProdTaskActive.ToString() + "', null, 'unadorned:yes ;resizable:0 ;dialogWidth:300px ;dialogHeight:300px ;status:no ;scroll:no ;status=no;'); </script>", false);
            }

同じページのボタンに適用しているのと同じコードでエラーが発生します。エラーメッセージは次のとおりです。-MicrosoftJScriptランタイムエラー:Sys.WebForms.PageRequestManagerServerErrorException:タイプ'ASP.associates_production_aspx'およびキー'に登録されたスクリプトタグOpenModalDialog'には、スクリプトタグの外側に無効な文字があります:window.showModalDialog(' ElapsedClockNonProd.aspx?code = 464'、null、' unadorned:yes; resizable:0; dialogWidth:300px; dialogHeight:300px; status:no; scroll: no; status = no;'); 。適切にフォーマットされたスクリプトタグのみを登録できます。

このエラーを修正する方法を教えてください。ボタンをクリックしても機能しないのに、ページの読み込み中に同じスクリプトが問題なく機能している理由がわかりません。

4

1 に答える 1

1
ScriptManager.RegisterStartupScript(page, page.GetType(), "OpenModalDialog", "<script type='text/javascript'>window.showModalDialog('ElapsedClockNonProd.aspx?code=" + isAnyNonProdTaskActive.ToString() + "', null, 'unadorned:yes ;resizable:0 ;dialogWidth:300px ;dialogHeight:300px ;status:no ;scroll:no ;status=no;'); </script>", false);
于 2012-09-24T12:20:51.497 に答える