【Daily】Asp.net Response.Write

來源:互聯網
上載者:User
1、直接用Response.Write()方法來輸出alert或者其他的js代碼時會影響到部分頁面樣式

因為Response.Write方法把<script>標籤輸出到了<DOCTYPE>標籤之前,導致了<DOCTYPE>標籤被忽略掉了,於是瀏覽器就把頁面當成一堆大雜燴的標籤(tag soup)而不是一個有效HTML文檔來解釋了,頁面的渲染模式變成了怪異模式(Quirks Mode)而不是標準的相容模式(Standards Compliance Mode),這樣就影響了HTML和CSS的解釋,因為瀏覽器試圖去模仿他的一個比較的版本,會產生許多怪異和錯誤。而且他還會給元素使用不同的預設樣式,這些原因就導致了最終的樣式問題。

這裡面有句話很重要,就是:<DOCTYPE>標籤前的任何東西都會導致<DOCTYPE>標籤被忽略掉。

方法一:把Response.Write()語句替換為這個

Page.RegisterStartupScript("ServiceManHistoryButtonClick", "<script>window.open('EquipmentHistory.aspx?eid=" + ServiceManDropDownList.SelectedValue + "');</script>");

這個方法用於在頁響應中發出用戶端指令碼塊,前一個參數是該Script在頁面中的唯一名稱(隨便起,不重複就行),後一個是指令碼內容。

這個方法應該是微軟官方推薦的方法。

方法二:在原程式的Response.Write()語句後再加一句

Response.Write("<script>document.location=document.location;</script>");

   2、在ASP.NET中應用微軟AJAX技術,把GridView在UpdatePanel裡匯出Excel時會出現的錯誤。http://topic.csdn.net/u/20080412/14/502aaafd-609c-4063-bc5f-ee91cc9140a2.html解決方案:<asp:ScriptManager ID="ScriptManager1" runat="server" EnableScriptGlobalization="True" EnableScriptLocalization="True"></asp:ScriptManager>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
    <br/>
    您自己的HTML代碼...
    <asp:GridView ID="GridView1" runat="server">
    </asp:GridView>
    <asp:LinkButton ID="lbtnExport2Excel" runat="server" OnClick="lbtnExport2Excel_Click">匯出Excel</asp:LinkButton>
    </ContentTemplate>
            <Triggers>
                    <asp:PostBackTrigger ControlID="lbtnExport2Excel" />
            </Triggers>
    </asp:UpdatePanel>  3、GridView匯出Excel時重寫VerifyRenderingInServerForm方法http://blog.csdn.net/JeromeLvye/article/details/5250701隻要在發生異常,代碼的調度直接進入catch塊中,那麼我們自訂的輸出代碼就不會執行context.Response.Write(sw.ToString()),系統轉而把整個頁面都輸出來了,所有我們就會看到不需要的一些控制項也被匯出來了。通過 Wiz 發布

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.