0

GridViewページでandを使用しListBoxています。Gridview には、データベース バインドからのデータが含まれていますDataSource。リスト ボックス内の項目をクリックするとGridView、サブ項目が表示されます。

にスクロールバーがあると問題が発生しGridViewます。グリッド ビューから最後のアイテムを選択すると、サブ アイテムが表示され、スクロールバーが上がります。どの項目が選択されているかわかりません。

4

3 に答える 3

0

非同期ポストバック後にスクロール位置をリセットするという質問への回答を読むことをお勧めします-ASP.NET

于 2009-06-16T07:27:43.550 に答える
0

ポストバックの前に、行 ID を生成するか、スクロール位置を記録する必要があります。ジャバスクリプト機能を使う

yourGridId.scrollTo(x,y) 

ポストバックの前に保存した以前の x および y 位置を渡します。

サーバー側でアクセスできるように、非表示フィールドに値を保存します。

于 2009-06-16T07:30:18.507 に答える
0

解決:

非表示フィールドを次のように配置します

<input type="hidden" id="hdnScrollTop" runat="server" value="0" /> 

そしてdiv関数の追加で

<div id="dvScroll" onscroll="$get('ctl00_ContentPlaceHolder1_hdnScrollTop').value = this.scrollTop;">

JavaScript:

var prm = Sys.WebForms.PageRequestManager.getInstance();         
prm.add_pageLoaded(pageLoaded);
prm.add_beginRequest(beginRequest);
var postbackElement;
function beginRequest(sender, args) {
   postbackElement = args.get_postBackElement();
}
function pageLoaded(sender, args)  {
   var updatedPanels = args.get_panelsUpdated();
   if (typeof (postbackElement) == "undefined") {
      return;
   }
   if (postbackElement.id.indexOf('gridViewList') > -1) {
     try {
         $get("divScroll").scrollTop = $get("ctl00_ContentPlaceHolder1__hdnScrollTop").value;
     }
     catch (Err) {
     }
}}

これで私の問題は解決しました。

于 2009-06-17T04:28:13.670 に答える