asp.net+js實時奧運金牌榜代碼
更新時間:2008年09月09日 13:17:14 作者:
運期間,公司交給我一個任務,在公司主頁上放上奧運金牌榜的排名,之前的實現(xiàn)方式是采用ajax
復制代碼 代碼如下:
<div id="gold">
<p>截止到9月09日09:46為止,<a target="_blank">北京奧運金牌榜</a>前五名如下:</p>
<table id="go" cellpadding="2" cellspacing="0">
<tr><th>名次</th><th>國家及地區(qū)</th><th>金牌</th><th>銀牌</th><th>銅牌</th><th>總計</th></tr>
<tr><td>1</td><td><a target="_blank">中國</a></td><td>51</td><td>21</td><td>28</td><td>100</td></tr><tr><td>2</td><td><a target="_blank">美國</a></td><td>36</td><td>38</td><td>36</td><td>110</td></tr><tr><td>3</td><td><a target="_blank">俄羅斯</a></td><td>23</td><td>21</td><td>28</td><td>72</td></tr><tr><td>4</td><td><a target="_blank">英國</a></td><td>19</td><td>13</td><td>15</td><td>47</td></tr><tr><td>5</td><td><a target="_blank">德國</a></td><td>16</td><td>10</td><td>15</td><td>41</td></tr>
</table>
</div>
比較下我們要實現(xiàn)的樣式:(紫紅色部分與上面要偷的數(shù)據(jù)對應)

實現(xiàn)步驟如下:
1、先讀取整個頁面的html代碼:
復制代碼 代碼如下:
//用來存放接受到的每一行數(shù)據(jù)
string content = "";
//接受到的是字節(jié)流
Stream str;
//提供向URI標識的資源發(fā)送數(shù)據(jù)和從URI標識的資源接受數(shù)據(jù)的公共方法
WebClient web = new WebClient();
//從指定的URI中下載數(shù)據(jù)并打開流
str = web.OpenRead("http://www.baidu.com/s?wd=%B0%C2%D4%CB%BD%F0%C5%C6%B0%F1&lm=0&si=&rn=10&ie=gb2312&ct=0&cl=3&f=1&rsp=0");
//以GB2312編碼從字節(jié)流中讀取數(shù)據(jù)
StreamReader sr = new StreamReader(str, Encoding.GetEncoding("GB2312"));
//把數(shù)據(jù)全部讀出來
content = sr.ReadToEnd();
2、對其進行過濾和替換只提取我們需要的部分,這部分我正則不行,寫得有點亂:
復制代碼 代碼如下:
Regex r = new Regex(@"<tr><th>名次</th><th>國家及地區(qū)</th><th>金牌</th><th>銀牌</th><th>銅牌</th><th>總計</th></tr>[\s\S]+?</table>");
Match m = r.Match(content); //匹配字符串
GroupCollection gc = m.Groups;
Regex rb = new Regex("</?(a|A)( .*?>|>)");
string soutput = rb.Replace(gc[0].ToString(), "");
soutput = soutput.Replace("<tr><th>名次</th><th>國家及地區(qū)</th><th>金牌</th><th>銀牌</th><th>銅牌</th><th>總計</th></tr>", "");
soutput = soutput.Replace("</table>","");
Regex rc = new Regex("<td>[1,2,3,4,5]</td>");
soutput = rc.Replace(soutput,"");
3、這樣樣式比較難控制,水平也有限,只用JS實現(xiàn)了。
復制代碼 代碼如下:
<script type ="text/javascript">
window.onload = function(){
var tr_ = document.getElementById("myTable").getElementsByTagName("tr");
var td_;
for(var i = 0;i < tr_.length; i ++){
tr_[i].style.backgroundColor = i%2==0?"#FFF4C7":"#FEEAAE";
if(i > 0){
td_ = tr_[i].getElementsByTagName("td")[0].style.textAlign = "center";
}
if(i == 4){
tr_[4].style.display = "none";
}
}
//第一個單元格居中
}
</script>
相關文章
ASP.NET開發(fā)者使用jQuery應該了解的幾件事情
如果你是有著APS.NET開發(fā)背景的人員,那么jQuery的幾個概念建議你應該忘掉。像使用其它的framework一樣,你應該學習一下jQuery的所有語法等約定來讓它更好的為你服務。2009-09-09
理解ASP.NET?Core?錯誤處理機制(Handle?Errors)
這篇文章主要介紹了理解ASP.NET?Core?錯誤處理(Handle?Errors)?,在這里需要注意的是,與“異常處理”有關的中間件,一定要盡早添加,這樣,它可以最大限度的捕獲后續(xù)中間件拋出的未處理異常。感興趣的朋友跟隨小編一起看看吧2021-11-11
ASP.NET WebForm中<%=%>與<%#%>的區(qū)別
這篇文章主要介紹了ASP.NET WebForm中<%=%>與<%#%>的區(qū)別,需要的朋友可以參考下2015-01-01

