GirdView凍結列2
上篇文章中,初步探討了利用改變表格中需要固定列的屬性(與滾動條的位置關係)而實現的表格凍結列效果,但遺憾的是僅能支援IE, 和OPERA。
http://www.cnblogs.com/xiadongzq/archive/2010/04/07/1706430.html
事實上,各瀏覽器對錶格的解析很不一樣,在CSS程式碼中改變表格的位置屬性本身就是不太明智的,好在那個專案使用人群極小,因此,IE only 湊合也能說的過去。
後來在HJ大俠的提醒下,設想了另一種思路:將表格中需要固定的列複製到另一個表中,母表與字表的樣式定義要完全一致,然後將字表的位置定義死,並覆蓋母表中相關的列。母表依舊隨著滾動條移動,完全不做改變。(實際上是一種視覺欺騙效果)
實現該效果的關鍵思路在於
1. 表格外要套兩層div,內層的用於設定滾動條,外層的要相對定位,以便於新的子表位置設定;
2. 子表與母表的樣式要完全一致,因此,需要實現設定好GridView的樣式,執行後,檢視瀏覽器原始檔,以完全複製表格的樣式(提醒新手,GridView經IIS解析後,就是普通的
3. 複製後的子表位置要絕對定位,並設定z-index屬性
以下為Gridview巢狀兩層div的程式碼:
<div id="grid">
<div id="gridview">
<asp:GridView ID="GridView1" runat="server" Font-Size="9pt" CssClass="datagrid">
<HeaderStyle Wrap="false" />
<RowStyle Wrap="false" />
asp:GridView>
div>
div>
然後是CSS樣式表:
<style>
.datagrid td {padding:4px; height:20px; text-align:center}
.fixed{ background:#fcc; z-index:2; }
.gridWidth{ width:4000px;}
.unfixed{ border:none;}
#grid {position:relative;display:block; width:90%; margin:30px auto; background:#fff; overflow:hidden;}
#gridview{position:relative;display:block;width:100%; background:#fff; overflow-y: hidden;overflow-x: scroll;}
style>
再是JS程式碼(用Jquery框架):
<script type="text/javascript" src="jquery-1.3.1.js">script>
<script type="text/javascript">
$(document).ready(function(){
var d=$("");
var height=0;
var width=0;
d.css({position:"absolute",left:"0",top:"0",background:"#fff"});
$("#grid").append(d);
var view=$(".datagrid");
var t=$(''); /*這裡的table樣式是在瀏覽器中檢視GridView解析後的表格的樣式,直接複製就行!*/
var trlist=view.find("tr");
for(var i=0;i
var tr=trlist[i];
var newTr=$(''); /*這裡tr的樣式也一樣,但要注意的是,有時gridview會隔一行換一種樣式,這裡的JS程式碼需要做一些處理*/
newTr.append($(tr).children(".fixed").clone());
t.append(newTr);
}
d.append(t);
});
script>
效果圖,與上文的無差,略去!
示例檔案:/Files/xiadongzq/ScrollTable2.rar
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-659714/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何凍結excel指定行和列 表格怎麼同時凍結行和列的視窗Excel
- excel凍結特定行列快捷鍵 怎麼凍結excel的指定行和列Excel
- excel凍結特定行列快捷鍵 excel中怎麼凍結任意行和列Excel
- jqgrid 凍結列3步設定
- Qt高仿Excel表格元件-支援凍結列、凍結行、內容自適應和合並單元格QTExcel元件
- frozenset凍結集合函式函式
- excel如何凍結視窗?Excel
- [JS 基礎] 物件凍結JS物件
- Excel 2007凍結窗格以鎖定特定行或列Excel
- 分享Linux程式凍結技術Linux
- 資料結構2——陣列資料結構陣列
- 解密Prompt系列2. 凍結Prompt微調LM: T5 & PET & LM-BFF解密
- 《凍結的希望》中的人體冷凍技術,能夠開啟永生的魔盒嗎?
- WPS表格如何實現凍結窗格
- excel表格如何凍結工作表的固定行?Excel
- Topaz Photo AI 在匯入影像時凍結 (Mac)AIMac
- Excel檢視資料小技巧——凍結窗格Excel
- .NET框架設計(高階框架架構模式)—鈍化程式、邏輯凍結、凍結程式的延續、瞬間轉移框架架構模式
- 如何凍結和鎖定你的 Linux 系統Linux
- 解決 Ubuntu 在啟動時凍結的問題Ubuntu
- windows10系統如何凍結Excel表格的視窗WindowsExcel
- Ubuntu LTS 16.04 開發進入功能凍結階段Ubuntu
- 前端元件wolfTable中關於表格凍結部分的說明前端元件
- 全面解析Pytorch框架下模型儲存,載入以及凍結PyTorch框架模型
- 在模擬水如何凍結時,人工智慧打破了僵局人工智慧
- Excel2007中如何凍結拆分視窗?Excel
- Excel 2007快速凍結,方便內容檢視Excel
- L2-022 重排連結串列【陣列】陣列
- L2-002 連結串列去重【陣列】陣列
- 前端資料結構(2)之佇列及其應用前端資料結構佇列
- 行業標準正式凍結,車聯網行業爆點可期行業
- 《啊哈!演算法》-第 2 章:棧、佇列、連結串列演算法佇列
- 微軟確認Windows 10存在bug 部分電腦升級後被凍結微軟Windows
- 在新葡京網站申請的賬號提取現金時被凍結,客服說要我充值才能解凍怎麼辦求解?網站
- 陣列結構之陣列陣列
- 版號解凍一年,為何還倒閉遊戲公司近2萬遊戲
- 資料結構 使用2個棧實現一個佇列資料結構佇列
- numpy陣列(2)陣列