[ASP.NET/.NET Framework][VC/MFC/ATL emeritus]
在各种各样的新闻组中,我看到很多人都在问一个问题。在ASP.NET的Server
side编程中,我怎么样去打开一个新窗口啊?以前,大家都是用client side script来做的,现在,我们应该怎样去做呢?
其实道理很简单,我们还是在使用client side
script。只不过有一点需要变化的是,在服务器端怎么render出客户端的script来?秘密就在。。。
呵呵,对了,RegisterStartupScript和RegisterClientScriptBlock。很多人听说过这两个函数,可是怎么用,却还是不太清楚,下面通过这两段代码来实现在server
side code中打开一个窗口,希望对大家有所帮助。
1)把下列代码放到一个control的事件处理函数中去,比如说一个button的click事件
string sURL =
@"http://www.xxx.com/sub-dir/page-name.aspx"; //自己写想要的URL吧
StringBuilder
sbScript = new StringBuilder();
StringBuilder sbFeatures = new
StringBuilder();
//设置要打开窗口的格式,大小
sbFeatures.Append("left=0,top=0,width=300,height=300,");
sbFeatures.Append("menubar=yes,resizable=yes,scrollbars=yes,");
sbFeatures.Append("status=yes,titlebar=yes,toolbar=yes");
sbScript.Append("
\n");
RegisterStartupScript("PopupWindowScript1", sbScript.ToString());
2)另外一种方法,在Page_Load里面写代码,然后动态attach给button的click事件。
sbScript.Append("
\n");
RegisterClientScriptBlock("PopupWindowScript2",
sbScript.ToString());
Button1.Attributes.Add("onclick",
"JavaScript:OpenAPopup()");
注:本文并未提到RegisterClientScriptBlock和RegisterStartupScript,在本文中,这两个函数出现的地方是可以通用的,希望没有把大家搞糊涂,呵呵
Anonymous comments are disabled