0

ページが部分的にポストバックされると、いくつかの問題に直面しています。javascript で tr display="" と display="none" を作成しているラジオ ボタンがいくつかあります。その後、行のグリッドビューを追加しています。グリッドビューには、新しい行を追加するための空のテンプレートとフッターが含まれています。しかし、グリッド ビューで行を追加すると、ユーザー コントロールがポストバックされるため、すべての tr が displa="none" になり、ページが読み込まれたときにデフォルトになります。グリッドビューを更新パネルに保持しようとしましたが、機能しませんでした。私のコントロールの階層は以下の通りです。

レベル 1-マスター ページ--->レベル 2-マスター ページ--->レベル 3-.aspx ページ--->レベル 4-ユーザー コントロール--->レベル 5 -複数のアコーディオン-->レベル- 6: 各アコーディオンに 1 つのユーザー コントロール..

コードが長すぎてここを過ぎてしまいました..更新パネルをユーザー コントロール (レベル 6) 内に保持しようとしましたが、機能しませんでした。グーグルで調べたところ、acrdian 内にある場合、更新ペインが機能しないことがわかりました。そのため、更新パネル内にすべての accrdian を保持しようとしましたが、その場合、.aspx ページはポストバックされませんが、accrodian 内に配置されたすべてのユーザー コントロールがポストバックされるため、選択はデフォルトのロードに設定されます。

最後のレベルのユーザー コントロールがポストバックされたときに、すべての選択を保持したい。

状況を理解するのは非常に複雑ですが、これが問題です..どうすれば問題を解決できますか?

4

1 に答える 1

3

JavaScriptからDOMに加えられた変更は、PostBack間で保持されません。サーバーはあなたが何をしたのかわからないので、それを追跡する方法がありません。

これを解決するには、CallbackまたはAjax呼び出しを使用してサーバー側でJSコードの状態を更新する必要があります。または、タグの状態を反映するフォームの非表示の入力フィールドを更新して、サーバーを使用する必要があります。そこを見て、それに応じてレンダリングされたHTMLを更新します。

于 2011-12-02T12:35:09.967 に答える