關於修改ASP.NET頁導航的樣式__.net

來源:互聯網
上載者:User

今早在CSDN論壇上看到一個文章,是關於如何修改ASP.NET頁導航的樣式的問題。描述如下——
-----------------------------------------------------------------
DataGrid的頁導航有“上一頁/下一頁”和“頁碼”兩種模式,當選擇“頁碼”模式時,如果頁數超過10頁了,就會顯示成:
1 2 3 4 5 6 7 8 9 10 ...
我想請教的是:有沒有比較好的辦法,將後面的...換成中文,例如“更多”
-----------------------------------------------------------------

這個問題初看起來確實有點困難,因為分頁數位“...”已經被封裝在DataGrid裡了,而且DataGrid也沒有提供相應的屬性來修改。於是很多朋友就想繼承自DataGrid自己寫一個“個人化”的DataGrid,或用一些第三方控制項來實現,這樣做固然可行,但卻大大的增加了開發成本,不到萬不得已,這些方法我覺得還是不用的為妙。

從另一個角度看,DataGrid到了前台就是一個普通的<Table>元素(HTML對象),利用DHTML+JavaScript的強大功能,可以在用戶端動態更改頁面上的任何元素,改幾個字眼自然不在話下……

樣本:
後台代碼——
(在頁面上添加一個新的DataGrid,並設定其分頁為每頁8條資料,頁導航用“數字”,並在後台page_load事件中添加如下代碼)
private void Page_Load(object sender, System.EventArgs e)
{
 DataTable table = new DataTable();
 table.Columns.Add("Test",typeof(string));
 for(int i=0;i<100;i++)
  table.Rows.Add(new object[]{"測試資料_"+i});
 this.DataGrid1.DataSource = table;
 this.DataGrid1.DataBind();
}

前台代碼——
(將一下代碼拷貝到頁面<Head></Head>之間)
<script language="javascript">
<!--
 window.attachEvent("onload",HandleDataGrid);
 
 function HandleDataGrid()
 {
  var dataGrid = document.getElementById("DataGrid1");
  var pageCell =  dataGrid.rows[dataGrid.rows.length -1].cells[0];
  pageCell.childNodes[pageCell.childNodes.length - 1].innerText = "更多";
 }
// -->
</script>

註:分析了一下DataGrid產生的用戶端代碼,發現“...”其實是位於<Table>最後一行的內的最後一個<a>標記,所以可以用pageCell.childNodes[pageCell.childNodes.length - 1]擷取對該標記的引用

-------------------------------------------------------
題外話:
其實很多複雜或難以實現的東西,如果我們從另一個角度去分析,很多時候可以得到簡單的處理方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.