【スクリプト】 シートのスクロール位置を調整したい
対象製品
SPREAD for .NET 2.5J Web Forms Edition
詳細
アプリケーション側にて下記のクライアント側スクリプトを実行することで、特定のセルが左上に表示されるようシートをスクロールすることが可能です。
次のサンプルコードではWebフォームにSPREADとボタンを配置した状態でボタンを押すとシートを5行目までスクロールした状態で表示します。
【VB サンプルコード】
【C# サンプルコード】
次のサンプルコードではWebフォームにSPREADとボタンを配置した状態でボタンを押すとシートを5行目までスクロールした状態で表示します。
【VB サンプルコード】
-------------------------------
Webフォームクラス
-------------------------------
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim scriptString As String = "<script language=javascript>function window.onload(){SetCellActive(4,0);}</script>"
RegisterClientScriptBlock("clientScript", scriptString)
'' VS2005をご使用のお客様は上記1行のコードをコメントアウトし、以下のコメントを外してください。
''Dim instance As ClientScriptManager = Page.ClientScript
''instance.RegisterClientScriptBlock(Me.GetType(), "clientScript", scriptString)
End Sub
-------------------------------
クライアント側スクリプト
-------------------------------
<script language="javascript">
function SetCellActive(row,col){
var spread=document.all("FpSpread1");
spread.SetActiveCell(row,col);
var cell = spread.GetCellByRowCol(row,col);
var rowHeader = spread.all(spread.id+"_rowHeader");
var colHeader = spread.all(spread.id+"_colHeader");
var view = spread.all(spread.id+"_view");
if(view==null)
return;
view.scrollTop = cell.offsetTop;
view.scrollLeft = cell.offsetLeft;
if (rowHeader!=null) {
rowHeader.scrollTop = view.scrollTop;
}
if (colHeader!=null) {
colHeader.scrollLeft= view.scrollLeft;
}
}
</script>
Webフォームクラス
-------------------------------
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim scriptString As String = "<script language=javascript>function window.onload(){SetCellActive(4,0);}</script>"
RegisterClientScriptBlock("clientScript", scriptString)
'' VS2005をご使用のお客様は上記1行のコードをコメントアウトし、以下のコメントを外してください。
''Dim instance As ClientScriptManager = Page.ClientScript
''instance.RegisterClientScriptBlock(Me.GetType(), "clientScript", scriptString)
End Sub
-------------------------------
クライアント側スクリプト
-------------------------------
<script language="javascript">
function SetCellActive(row,col){
var spread=document.all("FpSpread1");
spread.SetActiveCell(row,col);
var cell = spread.GetCellByRowCol(row,col);
var rowHeader = spread.all(spread.id+"_rowHeader");
var colHeader = spread.all(spread.id+"_colHeader");
var view = spread.all(spread.id+"_view");
if(view==null)
return;
view.scrollTop = cell.offsetTop;
view.scrollLeft = cell.offsetLeft;
if (rowHeader!=null) {
rowHeader.scrollTop = view.scrollTop;
}
if (colHeader!=null) {
colHeader.scrollLeft= view.scrollLeft;
}
}
</script>
【C# サンプルコード】
------------------------------
Webフォームクラス
------------------------------
private void Button1_Click(object sender, System.EventArgs e)
{
string scriptString="<script language=javascript>function window.onload(){SetCellActive(4,0);}</script>";
RegisterClientScriptBlock("clientScript",scriptString);
// VS2005をご使用のお客様は上記1行のコードをコメントアウトし、以下のコメントを外してください。
//ClientScriptManager instance = Page.ClientScript;
//instance.RegisterClientScriptBlock(this.GetType(), "clientScript", scriptString);
}
------------------------------
クライアント側スクリプト
------------------------------
VB.NET 版サンプルコードと同様
Webフォームクラス
------------------------------
private void Button1_Click(object sender, System.EventArgs e)
{
string scriptString="<script language=javascript>function window.onload(){SetCellActive(4,0);}</script>";
RegisterClientScriptBlock("clientScript",scriptString);
// VS2005をご使用のお客様は上記1行のコードをコメントアウトし、以下のコメントを外してください。
//ClientScriptManager instance = Page.ClientScript;
//instance.RegisterClientScriptBlock(this.GetType(), "clientScript", scriptString);
}
------------------------------
クライアント側スクリプト
------------------------------
VB.NET 版サンプルコードと同様
キーワード
外観 クライアント側スクリプト
この文書は、以前は次のFAQ IDで公開されていました : 9136