0

これを行う方法がない可能性がありますが、私は尋ねると思います。私はasp.netに比較的慣れておらず、約1週間遊んでいます。私が今持っているのは、Web サービスを呼び出し、それが完了するまでポーリングし (進行状況が UpdatePanel に表示される)、進行状況テキストを非表示にし、代わりに結果 (いくつかのメタデータを含むファイルの再帰的なリスト) を表示するページです。 TreeView を UpdatePanel に追加します。私が望むのは、TreeView のノードをクリックして、クリックしたノードに関する拡張情報 (サーバー側で取得した情報) で 2 番目の UpdatePanel を更新することです。TreeNode をクリックして分離コード関数を呼び出す方法はわかりませんがノードの NavigateUrl を「javascript:

しかし、この時点で、私はちょっと困惑しています。StackOverflow には、(WebMethod または同等の方法を使用して) javascript からコード ビハインドにコールバックする方法について、正解のある質問がたくさんありますが、静的ではないコードを呼び出すことはできないようです。ページ自体、またはさらに言えば、セッションまたはページの状態にアクセスします。StackOverflow には、UpdatePanel がそれ自体を更新するように JavaScript で要求する方法 (__doPostBack()) に関する質問もたくさんありますが、何がクリックされたかをサーバーに伝える方法がなければ、UpdatePanel は何を表示すればよいかわかりません。

したがって、私が望んでいる質問には答えがあります: ページ上の JavaScript で、パラメーターを取得し、それを使用して別の UpdatePanel の部分的なポストバックを実行できるサーバー側関数をトリガーする巧妙な方法がありませんか?

ありがとう!

4

1 に答える 1

0

実際、それは非常に簡単です。2 番目の更新パネル内に LinkBut​​ton を配置するだけで (テキストが空の場合は非表示になる可能性があります)、JavaScript.click()でそのコントロールのクライアント側メソッドを呼び出し、ASP.NET でサーバー側OnClickイベントを処理します。

于 2013-05-14T21:10:36.073 に答える