+ -
当前位置:首页 → 问答吧 → 想做一个类似动态新闻公告,现在已经利用xml跟xsl 可以分页了,现在需要在每条公告上面做一个链接,链接到详细的新闻内容。

想做一个类似动态新闻公告,现在已经利用xml跟xsl 可以分页了,现在需要在每条公告上面做一个链接,链接到详细的新闻内容。

时间:2010-07-25

来源:互联网

我的xsl文件。
<?xml version="1.0" encoding="gb2312" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><!--标准-->
<xsl:template match="/">
<html>
<head>
<title>最新活动</title>
<style>
body,div,NewDataSet,Results,序号,blue_name,blue_text,blue_time,blue_class{ font: 16px "宋体", "微软雅黑",

"Times New Roman"; }

table { font-size: 16px; border: 0px double; border-color: #99CC99 #99CC99 #CCCCCC #CCCCCC;

cellpadding:3;cellspacing:3; bgcolor:#eeeeee; text-decoration: blink}
span { font-size: 16px; color: red; }
.keybutton { cursor:hand; font-size: 16px; color: #003300; background: #ffffff; border: 0px

solid;}
</style>
<script>
<xsl:comment>
<![CDATA[
var OnePageNum=4;
var PageNum=1;
var XMLPageNum=1;
function pages(Num)
{
stylesheet=document.XSLDocument;
source=document.XMLDocument;
nodes=source.documentElement.childNodes;
len=nodes.length;
for(i=1;i<=(len/OnePageNum);i++);
XMLPageNum=i;
var firstNum=0;
var lastNume=0;

if (Num=="first") {PageNum=1;}
if (Num=="previous") {if (PageNum>1) PageNum -=1;}
if (Num=="next") {if (PageNum<XMLPageNum) PageNum +=1;}
if (Num=="last") {PageNum =XMLPageNum;}

sortField=document.XSLDocument.selectSingleNode("//@test"); //<!--改-->

firstNum=OnePageNum*(PageNum-1)+1;
lastNum=OnePageNum*(PageNum-1)+OnePageNum;
text="position()>="+firstNum+" and position()<="+lastNum; //<!--改,注:此处小于号用字符-->
sortField.text=text; //<!--改-->

Layer1.innerHTML=source.documentElement.transformNode(stylesheet);

}
]]>
</xsl:comment>
</script>
</head>

<body background="netbkgnd.gif">
<p align="center"><span><font size="7" face="微软雅黑" color="#FF0066">最 新 活 动</font></span></p>
<table align="center" width="90%" >
<tr>
<td align="center" height="50" >
<button id="cmdfirstPage" class="keybutton" onclick="pages('first');" ><font size="4" face="微软雅黑" color="#000000">首 页</font></button>
<button id="cmdpreviousPage" class="keybutton" onclick="pages('previous');" ><font size="4" face="微软雅黑" color="#000000">上一页</font></button>
<button id="cmdnextPage" class="keybutton" onclick="pages('next');"><font size="4" face="微软雅黑" color="#000000">下一页</font></button>
<button id="cmdlastPage" class="keybutton" onclick="pages('last');"><font size="4" face="微软雅黑" color="#000000">尾 页</font></button>
</td>
</tr>
</table>
<div id="Layer1" name="Layer1"> <xsl:apply-templates select="NewDataSet" /></div>
<table align="center" width="90%" >
<tr>
<td align="center" height="50" >
<button id="cmdfirstPage" class="keybutton" onclick="pages('first');" ><font size="4" face="微软雅黑" color="#000000">首 页</font></button>
<button id="cmdpreviousPage" class="keybutton" onclick="pages('previous');" ><font size="4" face="微软雅黑" color="#000000">上一页</font></button>
<button id="cmdnextPage" class="keybutton" onclick="pages('next');"><font size="4" face="微软雅黑" color="#000000">下一页</font></button>
<button id="cmdlastPage" class="keybutton" onclick="pages('last');"><font size="4" face="微软雅黑" color="#000000">尾 页</font></button>
</td>
</tr>
</table>
</body>

</html>
</xsl:template>
<xsl:template match="NewDataSet">
<table width="90%" border="1" align="center" cellpadding="1" cellspacing="1"

bordercolordark="#ffffff" bordercolorlight="#ADAAAD">
<tr bgcolor="#FFCC99" align="center">
<td>编号</td>
<td>时间</td>
<td>地点</td>
<td>主题</td>
<td>主讲</td>
</tr>
<xsl:apply-templates select="Results"/><!--改,注:此处去掉order-by属性,它是草案版的独有。-->
</table>
</xsl:template>
<xsl:template match="Results">
<xsl:if test="position()>=1 and position() &lt;= 4"><!--改,注:此处小于号要转义,即&amp;lt;-->
<tr align="center">
<xsl:apply-templates select="序号" />
<xsl:apply-templates select="时间" />
<xsl:apply-templates select="地点" />
<xsl:apply-templates select="主题" />
<xsl:apply-templates select="主讲" />
</tr>
</xsl:if>
</xsl:template>

<xsl:template match="序号">
<td bgcolor="#eeeeee">
<xsl:value-of select="."/>
</td>
</xsl:template>
<xsl:template match="时间">
<td>
<xsl:value-of select="."/>
</td>
</xsl:template>
<xsl:template match="地点">
<td>
<xsl:value-of select="."/>
</td>
</xsl:template>
<xsl:template match="主题">
<td>
<xsl:value-of select="."/>
</td>
</xsl:template>
<xsl:template match="主讲">

<td>
<xsl:value-of select="."/>
</td>

</xsl:template>
</xsl:stylesheet>
我的xml数据文件,根据dataset生成的。
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/xsl' href='page.xsl'?>
<NewDataSet>
  <Results>
  <序号>1</序号>
  <时间>07 24 2010 1:30PM</时间>
  <地点>图书大厦</地点>
  <主题>让写字成为最有趣的事情.</主题>
  <主讲>罗一鸣</主讲>
  <内容>儿童慧画馆长</内容>
  </Results>
  <Results>
  <序号>2</序号>
  <时间>07 29 2010 1:30PM</时间>
  <地点>图书大厦</地点>
  <主题>七堂课,解决中学生书写问题.</主题>
  <主讲>罗一鸣</主讲>
  <内容>青年书画家.馆长.</内容>
  </Results>
  <Results>
  <序号>3</序号>
  <时间>07 29 2010 10:00AM</时间>
  <地点>图书大厦</地点>
  <主题>思维慧画</主题>
  <主讲>罗一鸣</主讲>
  <内容>馆长大连神墨</内容>
  </Results>
  <Results>
  <序号>4</序号>
  <时间>08 4 2010 1:30PM</时间>
  <地点>图书大厦</地点>
  <主题>作家与小读者见面交流会</主题>
  <主讲>满涛</主讲>
  <内容>&lt;少年大世界&gt;主编,作品&lt;哭鼻子的大书包&gt;等</内容>
  </Results>
  <Results>
  <序号>5</序号>
  <时间>8月1日</时间>
  <地点>图书大厦</地点>
  <主题>当场成为绘画高手</主题>
  <主讲>罗一鸣</主讲>
  <内容>画画</内容>
  </Results>
  <Results>
  <序号>6</序号>
  <时间>8月2日</时间>
  <地点>图书大厦</地点>
  <主题>写字</主题>
  <主讲>罗二名</主讲>
  <内容>写字剪纸</内容>
  </Results>
  <Results>
  <序号>7</序号>
  <时间>八月三日</时间>
  <地点>图书大厦会议室</地点>
  <主题>摄影</主题>
  <主讲>郑勇气</主讲>
  <内容>摄影艺术拍照</内容>
  </Results>
  <Results>
  <序号>8</序号>
  <时间>9月2日</时间>
  <地点>图书大厦小会议室</地点>
  <主题>教育之魂是爱</主题>
  <主讲>于立极</主讲>
  <内容>爱学生,教师当努力</内容>
  </Results>
  <Results>
  <序号>9</序号>
  <时间>7月25号</时间>
  <地点>计算机中心</地点>
  <主题>xml分页成功完成</主题>
  <主讲>xml分页</主讲>
  <内容>xml分页测试成功</内容>
  </Results>
</NewDataSet>

现在想实现点击1-9每个整行,都能链接到一个新的html网页来显示更详细的公告内容。(可以再建立新表,或者在原有表上增加列,都行。)谢谢同学们了。

作者: iliking   发布时间: 2010-07-25

详细?
<td>
<a href='show.asp?id={序号或者其他标识}'>详细</a>
</td>

作者: net_lover   发布时间: 2010-07-26

我用的是winform,内嵌webbrowser,想实现新闻公告的效果:就是查询出公告的主题和时间用分页来显示,然后点击主题 跳转到相应的网页(根据xsl模板生成对应的html页面,有该主题的具体内容,),也在同一个webbrowser内显示.谢谢.

作者: iliking   发布时间: 2010-07-26