タイトルのように、ASP.NET で GridView ヘッダーをフリーズする方法を知っている人はいますか?
8 に答える
あなたはcssでそれを行うことができます
Freeze Header: 1. スタイルシートで class .Freezing を定義:
.Freezing
{
position:relative ;
top:expression(this.offsetParent.scrollTop);
z-index: 10;
}
2.Datagrid ヘッダーの cssClass を Freezing に割り当てます
ASP.NET用のこのオープンソースプロジェクトを試してください。GridViewを拡張して、固定のヘッダー、フッター、ページャー、およびサイズ変更可能な列幅を提供します。IE 6/7/8、Firefox 3.0 / 3.5、Chrome、Safariでうまく機能します。
http://johnsobrepena.blogspot.com/2009/09/extending-aspnet-gridview-for-fixed.html
オプション(a)この機能が組み込まれた強化されたGridViewを含むUIパッケージを購入します。
オプション(b)自分でロールする-それは簡単ではありません。ディノエスポシートには1つのアプローチがあります。
編集:Dinoの記事がASPnetProマガジンサイトの購読者専用エリアにリンクしていることに気づきました。
エクステンダーを使用した別のアプローチを次に示します。
私はこれの解決策を持っていると思います。以下のJavaScriptコードを参照してください
<script type="text/javascript" language="javascript">
var orgTop = 0;
$(document).scroll(function () {
var id = $("tr:.header").get(0);
var offset = $(id).offset();
var elPosition = $(id).position();
var elWidth = $(id).width();
var elHeight = $(id).height();
if (orgTop == 0) {
orgTop = elPosition.top;
}
if ($(window).scrollTop() <= orgTop) {
id.style.position = 'relative';
id.style.top = 'auto';
id.style.width = 'auto';
id.style.height = 'auto';
}
else {
id.style.position = 'absolute';
id.style.top = $(window).scrollTop() + 'px';
id.style.width = elWidth + 'px';
id.style.height = elHeight + 'px';
}
});
</script>
.header
Grid ヘッダーの css クラスはどこにありますか。
このスクリプトをページに追加header
し、ヘッダーに使用した css クラス名に置き換えるだけです。
Asp.Net 2.0 / 3.5 で Web アプリケーションを開発しているときに、私も同様の問題に直面しました。
ある晴れた日、私はIdeaSparks ASP.NET CoolControlsに出会いました。固定列ヘッダー、フッター、およびページャーを表示するのに役立ちます。
私はそれらを個人的に使用しましたが、本当に気に入りました!
コントロールを確認するには、ここをクリックしてください: IdeaSparks ASP.NET CoolControls
お役に立てれば!
次のサンプルを試すことができます