私は Web サイトのコメント システムに取り組んでおり、ポストバックごとに、このページに関連するデータベース内のすべてのコメントに対して、ページがユーザー コントロール (ucComment と呼ばれる) を生成します。各 ucComment には、個々のコメントに返信できる [返信] ボタンがあります。
新しいコメントが作成されるたびに、次のポストバックですべてのページのコントロール ID がオフセットされることに最終的に気付いたとき、Respond ボタンが何もしないという問題がありました。つまり、ctl00_Content_ctl00_ctl01_ctl0 7 _lbtnRespond をクリックすると、そのコントロールは実際には次のポストバックでctl00_Content_ctl00_ctl01_ctl0 8 _lbtnRespond として生成されます。したがって、ctl07 に関連付けられたイベントは発生しません。
Web をいじっているときに、ClientID のオーバーライドについて読みました。コントロールに好きな名前を付けることができれば、問題を回避できると思いました。 http://west-wind.com/Weblog/posts/4605.aspx 素晴らしいハックのように見えましたが、ページで生成された ID とコントロールでの ID の表現方法が一致しないため、イベントは発生しません。木。
MasterPage から派生して、上記のハックをポストバックで機能させるためにコントロール ツリーが機能する方法を変更した人もいます: http://www.netquarry.com/index.php/2009/03/master-pages-ajax -and-javascript-10292/ しかし、計り知れない影響があるのではないかと心配しています。
特定のコメントに応答し、そのポストバックでコントロールの名前が変更された場合でも応答イベントが引き続き発生するように、コメント システムを機能させるにはどうすればよいですか?