分類:[ASP.NET (C#)]
開発環境Visual Studio2008 Professional Edition 評価版
お世話になります。
いろんなサイトを見ても実現方法は以下↓と同じでした。
http://jsajax.com/Articles/CSSFixedHeaderColumns/426
しかし、同じやり方で実装しても同様の動作にはなりません。
下記がコードです。
<head id="Head1" runat="server">
<title>テスト</title>
<base target="_self" />
<meta http-equiv="pragma" content="no-cache" />
<style type="text/css">
.Freesing
{
position:relative;
top:expression(this.offsetparent.scrollTop);
z-index:10;
}
.active {ime-mode: active;}
.disabled {ime-mode: disabled;}
</style>
</head>
<body>
<form id="form1" runat="server">
<div id="freezingDiv" style="OVERFLOW: auto; WIDTH: 800px; HEIGHT: 300px">
<asp:Panel ID="Panel1" runat="server" ScrollBars="Vertical">
<asp:GridView ID="scheduleCopyGridView" runat="server" AutoGenerateColumns="False"
onrowcommand="scheduleCopyGridView_RowCommand" CellPadding="4" ForeColor="#333333"
Width="800px">
〜省略〜
</asp:GridView>
</asp:Panel>
</div>
</form>
</body>
気になるのが
top:expression(this.offsetparent.scrollTop);の記述時に
top:で選択できるのが "auto" だけなので上記はベタ書きしました。
もしかしたら「top:expression(this.offsetparent.scrollTop);」を使うには
参照設定する必要があるのかと思いました。
根拠としては他にもあり
この画面は「window.showModalDialog」で呼び出しているのですが
グリッドのプロパティのCssClassに"Freesing" を追加すると
「Microsoft JScript 実行時エラー: 'this.offsetparent.scrollTop' は
Null またはオブジェクトではありません。」
となるからです。
どなたか原因がわかる方がいたら教えて下さい。
以上、宜しくお願い致します。
|