2008年5月17日 星期六

ASP.NET2.0 CSS 失效問題

我使用asp.net時,一直有感覺到CSS似乎不太受到控制,最常遇到的就是字型怎麼忽大忽小,弄到後來乾脆都不去設定字型,不過這樣就
太消極了,後來上網查詢了一下,發現原來很多人都有遭遇到這種問題,也有前輩提出了解決方法以及問題點。
PostBack後CSS失效的原因

PostBack後CSS失效的原因由於asp.net 2.0 默認採用「http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd」定義,裡面有要求在「<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-ransitional.dtd">」的前面不可以以任何的輸出,不過當我們在程式碼中使用Response.write()方法來做輸出時,就會發生違反定義的情況,此時就會有CSS失效的異常現象發生。

解決方法
1.將要輸出的資料存到Literal中再將其新增至頁面來做輸出

Literal lt = new Literal();
lt.Text = "<scrupt>alert('Hellow World');</script>";
this.Page.Controls.Add(lt);

2.若是JavaScript Code 可以使用ClientScript輸出至標頭區

String sScript = "<scrupt>alert('Hellow World');</script>";
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "test", sScript);

沒有留言: