在後台加JavaScript 指令碼 頁面回傳後樣式丟失 

來源:互聯網
上載者:User
開發環境 Vs 2008  .Net 3.5

現象 :
   工作中 填單頁面,包含填寫內容的控制項和一個提交按鈕.
    在後台裡面的指令碼中 ,有一個按鈕的OnClick 事件
   事件的內容 
        
         儲存不成功  頁面提示一個儲存不成功的友好資訊
         成功也一樣

   其中寫指令碼的代碼如下:
     
 

this.Response.Write("<script>alert('儲存不成功!')</script>");

   在運行後,點按鈕 ,儲存不成功的情況下 ,彈出對話方塊 ,但樣式丟失

原因:
   在後台 用this.Response 的時候 會先於Render方法 將指令碼添加到回傳到客戶的流中,然後Page
頁面在結束時 調用 render()產生正常的頁面流並也添加到回傳到用戶端的流中,這樣瀏覽器接受到的東西是

<script>alert('儲存不成功!')</script>
<html xmlns="http://www.w3.org/1999/xhtml">
   <head> 
   </head>
   <body>
   </body>
</html>

      這樣的組合,有時是會出現樣式丟失的問題(這邊是不所有的這樣的情況樣式都會丟失,根本原因不詳) (瀏覽器不能正確的解析)

解決的方法
  概要的講 ,就是通過後台對用戶端進行代碼註冊
  下面是一個簡單的例子
  

        ClientScriptManager cs = Page.ClientScript;
        cs.RegisterClientScriptBlock(typeof(Object), "alert", "<Script> window.alert('故障單提交成功,流水號為" + GetFaultInfo().Fault_NO + "!')</script>",True);

  注意 在給方法賦值的時候一定要加上最後面的 True  ,這樣的話可以重寫一個頁面上的同一名稱的指令碼塊
   ClientScriptManager 類用於管理用戶端指令碼並將它們添加到 Web 應用程式中。 

                                              2008/05/28       下午  於上海 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.