文章使用了多種動(dòng)態(tài)調(diào)用樣式表的方法。首先你可以學(xué)習(xí)到如何使用JavaScript代碼來(lái)動(dòng)態(tài)調(diào)用的方法,
然后我們會(huì)探索如何從數(shù)據(jù)庫(kù)中讀取樣式表代碼。文章還提供了一些技巧來(lái)進(jìn)一步提高樣式表代碼。
還提供了一個(gè)完整的示例程序和有關(guān)源碼。
說(shuō)明
許多的人都想實(shí)現(xiàn)在用戶登陸后的頁(yè)面擁有自己的樣式。我的做法是:首先我在數(shù)據(jù)庫(kù)中存儲(chǔ)了許多的樣式代碼,然后將他們拷貝、粘貼到內(nèi)容的樣式表中。然后我從數(shù)據(jù)庫(kù)中讀取出數(shù)據(jù),講數(shù)據(jù)賦值給變量,插入到我的動(dòng)態(tài)頁(yè)面中。
(1)動(dòng)態(tài)調(diào)用JavaScript代碼。
動(dòng)態(tài)調(diào)用JavaScript代碼有兩種有效方法。
Listing 1
Page.ClientScript.RegisterStartupScript(GetType(Page), "item1", script)
Listing 2
ScriptManager.RegisterClientScriptBlock(Page, GetType(Page), "item1", script, True)
如果你創(chuàng)建的是AJAX enabled website或者使用了ScriptManager時(shí),使用該方法。
Listing 3
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
兩種方法不同的是,第一種方法是將Script代碼輸出到頁(yè)面的最下面。第二種方法是講代碼輸出到<BODY>標(biāo)簽后面。
第二種不同的是,第一種方法是必須在代碼中增加一個(gè)<script>標(biāo)簽,第二種方法會(huì)自動(dòng)為你添加標(biāo)簽。
假設(shè)我的代碼就像下面這樣。
Listing 4
protected void Page_Load(object sender, EventArgs e)
{
string script = "";
if(!IsPostBack)
{
script = @"<script type='text/javascript'><!-- alert('Alert message two'); --></script>";
Page.ClientScript.RegisterStartupScript(GetType(Page), "focus4", script);
script = @"alert('Alert message one');";
ScriptManager.RegisterClientScriptBlock(Page, GetType(Page), "item11", script, True)
}
}
然后我們有兩個(gè)文本框;第一個(gè)消息框顯示"alert message one",雖然它第二個(gè)調(diào)用。
并且我們把第二個(gè)文本框顯示為"Alert message two"。
你可能會(huì)把你的提示信息硬編碼在頁(yè)面的<BODY>內(nèi)。
Listing 5
<script type="text/javascript">
<!--
alert('in between');
-->
</script>
這個(gè)消息將會(huì)顯示在第一個(gè)方法和第二個(gè)方法的中間。并且這個(gè)消息框?qū)⑹褂迷摯a在頁(yè)面加載的時(shí)候彈出來(lái)。
Listing 6
Page.ClientScript.RegisterStartupScript
這個(gè)方法調(diào)用的消息框執(zhí)行頁(yè)面加載后,在Listing 7 之前彈出。
Listing 7
ScriptManager.RegisterClientScriptBlock
第三種執(zhí)行動(dòng)態(tài)執(zhí)行你的代碼的方式是這樣。
Listing 8
<head>
<title><% =titelpage%></title>
<% =MyNewStyle%>
</head>
該代碼是在頁(yè)面中必須填充變量MyNewStyle。
Listing 9
protected string MyNewStyle = "";
protected string titlepagina = "";
protected void Page_Load(object sender, EventArgs e)
{
titelpagina = "new title";
MyNewStyle = @"<style type='text/css'>TD{color:orange;border:1;" +
@"border-color:black;border-style:solid;}</style>";
}
這是一種簡(jiǎn)單的動(dòng)態(tài)填充樣式的方法。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。