0

メインフォームの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>  
4

2 に答える 2

0

Microsoft Ajaxを使用せず、代わりにjqueryからwebmethodsを呼び出すことになりました!

于 2013-03-25T00:11:26.897 に答える
0

コードビハインドにプロパティを追加してみると、必要な値が返されます。次に、クライアント側で、このプロパティにバインドするだけです。

于 2013-03-22T07:15:18.943 に答える