
- 本栏最新文章
- Java对于Cookie的操作详解 06-27
- 处理大量JavaScript对象的好选择:JSON 06-26
- 动态CSS,换肤技术 05-09
- Lightbox JS v2.0 04-29
- Iframe自动适应高度 04-18
- 如何实现iframe(嵌入式帧)的自适应高度 04-18
- 根据内容自动调整IFrame高度 04-18
- 用iframe自动适应高度 04-18
- 【翻译】动态调用样式表代码 04-04
- Java更新XML地四种常用办法简略介绍(1) 04-01

- 本栏推荐文章
- ASP.NET设计网络硬盘之查看文件夹 04-29
- ASP.NET设计网络硬盘之文件夹实现 04-29
- ASP.NET设计网络硬盘之上传文件 04-29
- 小试ASP.NET 2.0的兼容性 04-29
- ASP 系列函数大全 04-29
- Asp.net Mvc Framework 九 (View与Controlle... 04-04
- 【翻译】动态调用样式表代码 04-04
- Flash AS3.0 实现FLASH的“动态链接库” 03-31
- Flash AS3.0 爽快使用XML 03-31
- MySQL的LIST分区体验与总结 03-27
当前位置:程序设计首页 >> Javascript技术 >> 详细内容
【翻译】动态调用样式表代码 (4)
简介:文章使用了多种动态调用样式表的方法。首先你可以学习到如何使用JavaScript代码来动态调用的方法,然后我们会探索如何从数据库中读取样式表代码。文章还提供了一些技巧来进一步提高样式表代码。还提供了一个完整 ...
nbsp; background-color: red;" & _
vbCrLf & " font-family:courier;" & _
vbCrLf & " font-weight:normal;" & _
vbCrLf & " color:red;}" & _
vbCrLf & "</style>"
'我插入了一个 vbCrLf 在页面。你也可以插入一个字符串。
HttpContext.Current.Session("StijlScript") = "<style type='text/css'>" & _
"BODY{background-color: red;font-family:courier;" & _
"font-weight:normal;color:red;}</style>"
'然后合并起来
script1 = vbCrLf & "--></script>" 'to end the javascript code
script1 = script1 & vbCrLf & HttpContext.Current.Session("StijlScript")
script1 = script1 & vbCrLf & "<script type=""text/javascript""><!--"
'执行它
ScriptManager.RegisterClientScriptBlock(CType( _
Page.FindControl("scriptManager1"), Object), _
CType(Page.FindControl("scriptManager1"), Object).GetType, _
"RefreshMap", script1, True)
'RefreshMap是唯一名字,如果你想要在最后提交这个script。
End Sub
End Class
Result
页面是一个黄色背景,没有使用ScriptManager.RegisterClientScriptBlock.
万一你同时用了Listing 13方法
Listing 13
ScriptManager.RegisterClientScriptBlock
和Listing 14方法
Listing 14
Page.ClientScript.RegisterStartupScript
那么最后一个方法将会重写前一个方法,因为最后一个方法是在页面的最后执行。
使用这个你可以实现你想要的东西。
你甚至可以去改变页面的标题,你也可以执行样式表。
你想要从代码执行<head>标签,必须先删除掉你的<head>静态HTML标签代码。
Listing 15
Dim script4 as String
Dim MyNewTitle as Sring = "item4"
Dim MyStyleSheet as String = "Croon.css"
script4 = vbCrLf & vbCrLf & "style sheet and title to " & _
MyNewTitle & "<BR/><head runat=""server""><title>" & _
MyNewTitle & "</title><link href=" & _
MyStyleSheet & " rel=""stylesheet"" type=""text/css"" /></head>"
Page.ClientScript.RegisterStartupScript(GetType(Page), "item8", script4)
来自于数据库的样式代码。
我假设你知道如何从数据库中取出数据。
假设我们的普通css样式包含Listing 16。
Listing 16
BODY{background-color:Orange;color:Aqua;}
TABLE{border:1;border-style:solid;}
TD{color:Navy;}
我改变成 Listing 17
Listing 17
<style type='text/css'>
BODY{background-color:Orange;color:Aqua;}
TABLE{border:1;border-style:solid;}
TD{color:Navy;}
</style>
首先选择这个文本,拷贝他并且粘贴到数据的一个字段中。
然后在代码中填充script变量。
Listing 18
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles Me.Load
Dim script As String
If Not Page.IsPostBack Then
script = READ THE DATA FROM THE DATABASE
Page.ClientScript.RegisterStartupScript(typeof(Page), "focus5", script)
script2 = "--></script>" & script & "<script type=""text/javascript""><!--"
ScriptManager.RegisterClientScriptBlock(Page, typeof(Page), "tekst", script2,
True)
End If
End sub
改变样式的另一个方法。
如果你想要转变另一个样式,你可能使用像调用styleswitch.js文件的Javascript代码.
如果你有许多的客户端,他们都想拥有自己的样式表,这样的工作会变的不清楚。
改变你的页面外观的第二种方法可能就是动态的Javascript代码,就像
document.body.style.backgroundColor='red';"
但是你怎么在多个客户端之间开呢?每一个客户也许都有自己的颜色。
你必须知道每一个适当的Javascript控制代码,并且必须知道如何动态的调用它。
主页面
Listing 19
BODY
{
border: 0;
border-style:solid;
font-size:small;
font-family:verdana;
background-color:yellow;
}
并且附加上我的HTML代码
Listing 20
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="HEAD1"><title>Telefoon applicatie </title>
<link href="Croon.css" rel="stylesheet" type="text/css" />
</head>
我创建了一个main.aspx页面,一个ASP.NET Ajax enabled website,并且插入了一个ScriptManager在我的页面中。
其次,我插入了一个我通常的样式表的参照。
全部的HTML代码如下
Listing 21
<%@ Page Language="VB" AutoEventWireup="true" CodeFile="Default.aspx.vb"
Inherits="_Default"%>
<span style='background:yellow'> </span>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
<link href="Croon.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<div>This text would be in Verdana from the normal style sheet.
I changed it dynamically in Courier.
</div>
</form>
</body>
</html>
在代码后台我放入
Listing 22
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles Me.Load
Dim script1 As String
'Session("StijlScript")用来填充你想要的方式。
'这篇文章我填充文本。
HttpContext.Current.Session("StijlScript") = "<style type='text/css'>" & _
"BODY {" & _
&n
vbCrLf & " font-family:courier;" & _
vbCrLf & " font-weight:normal;" & _
vbCrLf & " color:red;}" & _
vbCrLf & "</style>"
'我插入了一个 vbCrLf 在页面。你也可以插入一个字符串。
HttpContext.Current.Session("StijlScript") = "<style type='text/css'>" & _
"BODY{background-color: red;font-family:courier;" & _
"font-weight:normal;color:red;}</style>"
'然后合并起来
script1 = vbCrLf & "--></script>" 'to end the javascript code
script1 = script1 & vbCrLf & HttpContext.Current.Session("StijlScript")
script1 = script1 & vbCrLf & "<script type=""text/javascript""><!--"
'执行它
ScriptManager.RegisterClientScriptBlock(CType( _
Page.FindControl("scriptManager1"), Object), _
CType(Page.FindControl("scriptManager1"), Object).GetType, _
"RefreshMap", script1, True)
'RefreshMap是唯一名字,如果你想要在最后提交这个script。
End Sub
End Class
Result
页面是一个黄色背景,没有使用ScriptManager.RegisterClientScriptBlock.
万一你同时用了Listing 13方法
Listing 13
ScriptManager.RegisterClientScriptBlock
和Listing 14方法
Listing 14
Page.ClientScript.RegisterStartupScript
那么最后一个方法将会重写前一个方法,因为最后一个方法是在页面的最后执行。
使用这个你可以实现你想要的东西。
你甚至可以去改变页面的标题,你也可以执行样式表。
你想要从代码执行<head>标签,必须先删除掉你的<head>静态HTML标签代码。
Listing 15
Dim script4 as String
Dim MyNewTitle as Sring = "item4"
Dim MyStyleSheet as String = "Croon.css"
script4 = vbCrLf & vbCrLf & "style sheet and title to " & _
MyNewTitle & "<BR/><head runat=""server""><title>" & _
MyNewTitle & "</title><link href=" & _
MyStyleSheet & " rel=""stylesheet"" type=""text/css"" /></head>"
Page.ClientScript.RegisterStartupScript(GetType(Page), "item8", script4)
来自于数据库的样式代码。
我假设你知道如何从数据库中取出数据。
假设我们的普通css样式包含Listing 16。
Listing 16
BODY{background-color:Orange;color:Aqua;}
TABLE{border:1;border-style:solid;}
TD{color:Navy;}
我改变成 Listing 17
Listing 17
<style type='text/css'>
BODY{background-color:Orange;color:Aqua;}
TABLE{border:1;border-style:solid;}
TD{color:Navy;}
</style>
首先选择这个文本,拷贝他并且粘贴到数据的一个字段中。
然后在代码中填充script变量。
Listing 18
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles Me.Load
Dim script As String
If Not Page.IsPostBack Then
script = READ THE DATA FROM THE DATABASE
Page.ClientScript.RegisterStartupScript(typeof(Page), "focus5", script)
script2 = "--></script>" & script & "<script type=""text/javascript""><!--"
ScriptManager.RegisterClientScriptBlock(Page, typeof(Page), "tekst", script2,
True)
End If
End sub
改变样式的另一个方法。
如果你想要转变另一个样式,你可能使用像调用styleswitch.js文件的Javascript代码.
如果你有许多的客户端,他们都想拥有自己的样式表,这样的工作会变的不清楚。
改变你的页面外观的第二种方法可能就是动态的Javascript代码,就像
document.body.style.backgroundColor='red';"
但是你怎么在多个客户端之间开呢?每一个客户也许都有自己的颜色。
你必须知道每一个适当的Javascript控制代码,并且必须知道如何动态的调用它。
主页面
Listing 19
BODY
{
border: 0;
border-style:solid;
font-size:small;
font-family:verdana;
background-color:yellow;
}
并且附加上我的HTML代码
Listing 20
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="HEAD1"><title>Telefoon applicatie </title>
<link href="Croon.css" rel="stylesheet" type="text/css" />
</head>
我创建了一个main.aspx页面,一个ASP.NET Ajax enabled website,并且插入了一个ScriptManager在我的页面中。
其次,我插入了一个我通常的样式表的参照。
全部的HTML代码如下
Listing 21
<%@ Page Language="VB" AutoEventWireup="true" CodeFile="Default.aspx.vb"
Inherits="_Default"%>
<span style='background:yellow'> </span>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
<link href="Croon.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<div>This text would be in Verdana from the normal style sheet.
I changed it dynamically in Courier.
</div>
</form>
</body>
</html>
在代码后台我放入
Listing 22
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles Me.Load
Dim script1 As String
'Session("StijlScript")用来填充你想要的方式。
'这篇文章我填充文本。
HttpContext.Current.Session("StijlScript") = "<style type='text/css'>" & _
"BODY {" & _
&n




