私の問題は、クライアント側で動的に生成されたhtml/javascriptからサーバーサイドイベント(DeleteClickedなど)を呼び出すことです。私は深くネットに根ざしている私のウェブサイト上の既存のページを持っています。ページのライフサイクルはかなり複雑で、ページから発せられる数十のイベントがあります。動的に追加されたクライアントスクリプト/ HTMLサーバー側イベントを呼び出す
いくつかのJQuery機能を利用して、ページが既に読み込まれた後でリンクやボタンを追加したいと考えています。たとえば、特定の画像に小さなホバーオーバーグラフィックスを表示したいとします。小さなホバーオーバーグラフィックスは、削除、編集などの機能を提供します。これらのクライアントサイドのクリエーションのクリックイベントを、サーバーライフサイクル全体をスラッシュ(またはバイパス)することなくサーバーサイドのイベントに結びつけたいと思います。
私が考えることができる唯一の解決策は、ページ全体に非表示のasp.netコントロールを埋め込むことです。クライアント側のコードでは、非表示のコントロールに手動でclick()を強制します。残念ながら、私はページをロードするときに呼び出される必要があるすべてのイベントを必ずしも知る必要はないので、これは受け入れ可能だとは思わない。私はまた、必ずしも必要ではないクライアントにマークアップのトンを送信するファンではない。
私の質問は意味がありますか?どんな助けでも大歓迎です!
WebMethodsを使用する際の問題は、ページがバインドされている基礎となるデータを変更する可能性があることです。私はasp.netコントロール(他のAJAXが呼び出され、Webメソッドにヒットした後)からイベントを発生させると、コントロールがもう存在しない可能性があるため、イベントが無効になる可能性があります。私は動的なHTML/javascriptが通常のページライフサイクルを使用するための方法が必要です。 WebMethodsは「本当のAJAX」であり、ページライフサイクルをバイパスします。 – jakejgordon
「onsuccess」javascriptハンドラをWebメソッド呼び出しに接続すると、webmethodを介してイベントが正常に完了した後、javascript/jqueryを使用してコントロールを更新できます。失敗したjavascriptハンドラを接続して、呼び出しが失敗した場合に必要なクリーンアップを実行できるようにすることもできます。 –
これはもっと暖かくなっているかもしれません...私が見ることができる唯一の明らかな問題は、WebMethodアクションを実行するためのものと、基本的には実行する必要があるものの2つのアクションページ(または適切な更新パネル)を再ロードします。 – jakejgordon