メインフォームのscriptmanagerで自動ポストバックを実行しているタイマーに接続されたupdatepanel内にリストボックスを持つコントロールがあります。
ポストバック全体でアイテムを選択したままにするには、以下の JavaScript を使用します。私はこれを徹底的に調査しましたが、選択したアイテムをポストバック間で選択し続ける別の方法があるとは思いません。ただし、このソリューションは非常にうまく機能しているようです。
私の問題は、メイン フォームに 2 番目のコントロールを追加すると、それが機能しないことです。
JavaScriptをメインフォームに移動しようとしましたが、次を使用してメインフォームから子コントロールにアクセスできません:
document.getElementById('<%=PositionsControl.FindControl("ListBox_Candidates").ClientID %>').selectedIndex
また、BeginRequestHandler と EndRequestHandler の名前を一意の名前に変更しようとしましたが (このスクリプトが両方のコントロールにある場合の競合を避けるため)、機能しません。
どんな助けでも大歓迎です。
<script type="text/javascript">
var index
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_beginRequest(BeginRequestHandler);
prm.add_endRequest(EndRequestHandler);
function BeginRequestHandler(sender, args) {
index = document.getElementById('<%=ListBox_Candidates.ClientID %>').selectedIndex;
}
function EndRequestHandler(sender, args) {
$get('<%=ListBox_Candidates.ClientID %>').selectedIndex = index;
}
</script>