msdn如下說:允許 asp.net 伺服器控制項在 page 中發出用戶端指令碼塊。 [C#]
public virtual void RegisterStartupScript(
string key,
string script
);
參數 key 標識指令碼塊的唯一鍵。 script 要發送到用戶端的指令碼的內容。 以下是一些應用執行個體:開啟一個新視窗: page.registerstartupscript("starup", "<script language= 'javascript'>window.open('" + url + "','','toolbar=no,resizable=yes,scrollbars=yes')</script>")警告視窗// <summary>
// 伺服器端彈出alert對話方塊
// </summary>
// <param name="str_message">提示資訊,例子:"不可為空!"</param>
// <param name="page">page類</param>
public void alert(string str_message,page page)
{
page.registerstartupscript("","<script>alert('"+str_message+"');</script>");
}重載此警告視窗,使某控制項獲得焦點// <summary>
// 伺服器端彈出alert對話方塊,並使控制項獲得焦點
// </summary>
// <param name="str_ctl_name">獲得焦點控制項id值,比如:txt_name</param>
// <param name="str_message">提示資訊,例子:"請輸入您姓名!"</param>
// <param name="page">page類</param>
public void alert(string str_ctl_name,string str_message,page page)
{
page.registerstartupscript("","<script>alert('"+str_message+"');document.forms(0)."+str_ctl_name+".focus(); document.forms(0)."+str_ctl_name+".select();</script>");
}確認對話方塊// <summary>
// 伺服器端彈出confirm對話方塊
// </summary>
// <param name="str_message">提示資訊,例子:"您是否確認刪除!"</param>
// <param name="btn">隱藏botton按鈕id值,比如:btn_flow</param>
// <param name="page">page類</param>
public void confirm(string str_message,string btn,page page)
{
page.registerstartupscript("","<script> if (confirm('"+str_message+"')==true){document.forms(0)."+btn+".click();}</script>");
}重載確認對話方塊,點擊確定觸發一個隱藏按鈕事件,點擊取消觸發一個隱藏按鈕事件// <summary>
// 伺服器端彈出confirm對話方塊,詢問使用者準備轉向那些操作,包括“確定”和“取消”時的操作
// </summary>
// <param name="str_message">提示資訊,比如:"成功增加資料,單擊\"確定\"按鈕填寫流程,單擊\"取消\"修改資料"</param>
// <param name="btn_redirect_flow">"確定"按鈕id值</param>
// <param name="btn_redirect_self">"取消"按鈕id值</param>
// <param name="page">page類</param>
public void confirm(string str_message,string btn_redirect_flow,string btn_redirect_self,page page)
{
page.registerstartupscript("","<script> if (confirm('"+str_message+"')==true){document.forms(0)."+btn_redirect_flow+".click();}else{document.forms(0)."+btn_redirect_self+".click();}</script>");
}獲得焦點// <summary>
// 使控制項獲得焦點
// </summary>
// <param name="str_ctl_name">獲得焦點控制項id值,比如:txt_name</param>
// <param name="page">page類</param>
public void getfocus(string str_ctl_name,page page)
{
page.registerstartupscript("","<script>document.forms(0)."+str_ctl_name+".focus(); document.forms(0)."+str_ctl_name+".select();</script>");
}子表單返回主表單//<summary>
//名稱:redirect
//功能:子表單返回主表單
//參數:url
//傳回值:空
//</summary>
public void redirect(string url,page page)
{
if ( session["ifdefault"]!=(object)"default")
{
page.registerstartupscript("","<script>window.top.document.location.href='/webjx/"+url+"';</script>");
}
}
Page.RegisterClientScriptBlock 和 Page.RegisterStartupScript 區別 --------------------------------------------------------------- Page.RegisterClientScriptBlock 指令碼將會被放在緊挨</form>的前面。 Page.RegisterStartupScript 指令碼將會被放在緊挨<form runat="server">後幾個隱藏的input的後面。 如果你僅僅是註冊一些函數,這兩者的效果是一樣的。 但如果你要註冊一些全域的指令碼,如定義一些全域變數並賦值,那麼它在HTML中的先後位置可能就比較重要,此時就應該用RegisterStartupScript保證指令碼能在前面被執行。 |