作成日: 2017/12/19 最終更新日: 2017/12/19
文書種別
使用方法
詳細
ポストバックが発生すると、C1GridViewのスクロール位置はリセットされます。
これを元のスクロール位置に戻すには、C1GridViewをUpdatePanel内に配置し、下記のようなスクリプトを実装してください。
この方法では、PageRequestManagerクラスのBeginRequestイベントを使用して現在のスクロール位置を取得し、EndRequestイベントを使用してその値を設定しています。
◎サンプルコード(aspx)
これを元のスクロール位置に戻すには、C1GridViewをUpdatePanel内に配置し、下記のようなスクリプトを実装してください。
この方法では、PageRequestManagerクラスのBeginRequestイベントを使用して現在のスクロール位置を取得し、EndRequestイベントを使用してその値を設定しています。
◎サンプルコード(aspx)
<script type="text/javascript">
// 一時的な値を保存するための変数を定義します
var horizontalPos, verticalPos;
// BeginRequest及びEndRequestイベントを登録します
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
// 水平・垂直スクロール位置を取得します
function BeginRequestHandler(sender, args) {
// SuperPanelにアクセスします
var $superPanel = $("#C1GridView1").closest(".wijmo-wijgrid").find(".wijmo-wijsuperpanel");
var hscroller = $superPanel.wijsuperpanel("option", "hScroller");
horizontalPos = hscroller.scrollValue;
var vscroller = $superPanel.wijsuperpanel("option", "vScroller");
verticalPos = vscroller.scrollValue;
}
// スクロール位置を設定します
function EndRequestHandler(sender, args) {
var $C1GridView1 = $("#C1GridView1");
var $superPanel = $C1GridView1.closest(".wijmo-wijgrid").find(".wijmo-wijsuperpanel");
// 水平スクロールバーを取得します
var hscroller = $superPanel.wijsuperpanel("option", "hScroller");
// その値を部分ポストバックの前にスクロールした値に設定します
hscroller.scrollValue = horizontalPos;
var vscroller = $superPanel.wijsuperpanel("option", "vScroller");
vscroller.scrollValue = verticalPos;
//スクロール位置を更新するためにRefreshメソッドを呼び出します
$superPanel.wijsuperpanel("refresh");
// 列ヘッダーの水平スクロールをリセットします
var fixedView = $C1GridView1.data("wijmo-c1gridview")._view();
var hPxValue = $superPanel.wijsuperpanel("scrollValueToPx", horizontalPos, "h");
fixedView._setFixedAreaPosition(fixedView._splitAreas.ne, "h", hPxValue, null, true);
}
</script>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<wijmo:C1GridView ID="C1GridView1" runat="server" Height="200px" Width="400px">
<ScrollingSettings Mode="Auto">
</ScrollingSettings>
</wijmo:C1GridView>
<asp:Button ID="Button1" runat="server" Text="PostBack" />
</ContentTemplate>
</asp:UpdatePanel>
// 一時的な値を保存するための変数を定義します
var horizontalPos, verticalPos;
// BeginRequest及びEndRequestイベントを登録します
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
// 水平・垂直スクロール位置を取得します
function BeginRequestHandler(sender, args) {
// SuperPanelにアクセスします
var $superPanel = $("#C1GridView1").closest(".wijmo-wijgrid").find(".wijmo-wijsuperpanel");
var hscroller = $superPanel.wijsuperpanel("option", "hScroller");
horizontalPos = hscroller.scrollValue;
var vscroller = $superPanel.wijsuperpanel("option", "vScroller");
verticalPos = vscroller.scrollValue;
}
// スクロール位置を設定します
function EndRequestHandler(sender, args) {
var $C1GridView1 = $("#C1GridView1");
var $superPanel = $C1GridView1.closest(".wijmo-wijgrid").find(".wijmo-wijsuperpanel");
// 水平スクロールバーを取得します
var hscroller = $superPanel.wijsuperpanel("option", "hScroller");
// その値を部分ポストバックの前にスクロールした値に設定します
hscroller.scrollValue = horizontalPos;
var vscroller = $superPanel.wijsuperpanel("option", "vScroller");
vscroller.scrollValue = verticalPos;
//スクロール位置を更新するためにRefreshメソッドを呼び出します
$superPanel.wijsuperpanel("refresh");
// 列ヘッダーの水平スクロールをリセットします
var fixedView = $C1GridView1.data("wijmo-c1gridview")._view();
var hPxValue = $superPanel.wijsuperpanel("scrollValueToPx", horizontalPos, "h");
fixedView._setFixedAreaPosition(fixedView._splitAreas.ne, "h", hPxValue, null, true);
}
</script>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<wijmo:C1GridView ID="C1GridView1" runat="server" Height="200px" Width="400px">
<ScrollingSettings Mode="Auto">
</ScrollingSettings>
</wijmo:C1GridView>
<asp:Button ID="Button1" runat="server" Text="PostBack" />
</ContentTemplate>
</asp:UpdatePanel>
旧文書番号
82475