2

OK、タイトルが完全に正確かどうかはわかりませんが、提案をお待ちしています!

ASP.NET カスタム コントロールを作成中です。これはまだ比較的新しいものなので、ご容赦ください。

イベントモデルを考えています。Web コントロールを使用していないため、ボタンから発生するイベントはなく、適切な引数を使用して手動で__doPostBackを呼び出しています。ただし、これは明らかに、オプションを選択するときに多くのポストバックが発生することを意味します (選択すると異なるレンダリングが行われます)。

やがて、これをより Ajax らしく、レスポンシブにする必要があるため、ローカル Javascript を呼び出すようにイベント バインディングを変更する必要があります。

したがって、コントロールの「モード」を切り替えることができるはずだと考えていました。ポストバックとハンドル自体を使用するか、doPostBack の代わりに呼び出す Javascript 関数名を指定できます。

  • これについてどう思いますか?
  • コントロールからのイベントの発生に間違った方法でアプローチしていますか? (ここで提案を完全に受け入れます!)
  • 同様の問題にどのようにアプローチしますか?

編集 - 明確にする

  • カスタム レンダリング コントロールを作成しています (つまり、WebControl から継承します)。
  • レンダリングされた出力を完全に制御したいので、既存の Web コントロールは使用していません。
  • 私の知る限り、カスタム レンダリング コントロールからサーバー側イベントを発生させる唯一の方法は、レンダリングされた要素から doPostBack を呼び出すことです (間違っている場合は修正してください!)。
  • ASP.NET MVC はオプションではありません。
4

2 に答える 2

1

私はこれについてもう少し掘り下げており、必要に応じてJavascriptをクライアントに挿入する方法に出くわしました。これは明らかに、コントロールの応答性を高め、サーバーへのラウンドトリップを減らす上で大きな役割を果たします。

例:RegisterClientScriptBlock

これでもっと遊ぶのを楽しみにして、気軽に参加してください!

于 2008-09-22T07:35:06.343 に答える
1

非常に奇妙な。ASP.NET サーバー コントロールとカスタム コントロールを使用していますが、Web コントロールは使用していませんか? __doPostBack を手動で呼び出していますか?

難しいことをするのは好きですか?

もし私がまだ MVC ではなくサーバー コントロール モデルを使用していたなら、その吸盤に ASP.NET Ajax コントロールを平手打ちして、1 日で終了したでしょう。あなたがやっていることは、モデル T に送風機を取り付けるようなものです。楽しくて面白いかもしれませんが、すべてのハードワークを終えた後、実際には何が得られますか?

于 2008-09-12T12:51:34.817 に答える