Response.Write在c#代码隐藏中调用jQuery对话框

时间:2013-05-20 15:41:29

标签: c# javascript jquery

我想使用Response.Write方法在c#代码隐藏中调用jQuery对话框。我尝试使用RegisterScriptBlock

Response.Write("<script> $(document).ready(function () {$('#divOutputWindow').html('You are not authorised to view this Page..!!').dialog({title: 'Notice...',show: 'slide',hide: 'blind',modal: true,buttons: {'Ok':function(){window.location = 'Default.aspx';}}});});</script>");

所有我的jQuery都被正确包含,因为我可以从我的JS文件中调用对话框。 ID:divOutputWindow出现在.aspx页面

仍然无法看到jQuery对话框。

P.S。 :我的.aspx页面不包含<form>代码,因此RegisterScriptBlock无效

2 个答案:

答案 0 :(得分:2)

它没有用,因为Response.Write在页面顶部添加了代码块。通过这种方式,脚本在加载jq库之前执行。 您需要使用ScriptManager和RegisterClientScriptBlock。

答案 1 :(得分:0)

这工作.. !!

在我的aspx页面中添加了<form id="frmUserManagement" runat="server">

和代码隐藏

StringBuilder strScript = new StringBuilder();
strScript.Append("$(document).ready(function(){");
strScript.Append("$('#divOutputWindow').html('You are not authorised to view this Page..!!<br/>Redirecting to Default Page.').dialog({title: 'Error...',show: 'slide',hide: 'blind',modal: true,buttons: {'Ok': function () {window.location='Default.aspx';}}});");
strScript.Append("});");
ScriptManager.RegisterStartupScript(frmUserManagement, frmUserManagement.GetType(), "Script", strScript.ToString(), true);