ASP.Netを使用しているときに、絶望することがあります。これは、あるべきではない別の問題です。
WebフォームにはASPテーブルがあります。ASPテーブルには、変更を加えているユーザーコントロールがあります。ASPテーブルには、テキストボックスがあります。これまでのところ、異常なことは何もありません。
背後のコードでは、Page_Loadの一部として、JavaScriptを登録するためにテキストボックスのClientIDにアクセスする必要があります...そのため、JavaScriptは必要なすべてを実行しているようです。みんな幸せです。
いいえ、明らかに誰もが満足しているわけではありません。ASP.Net自体は非常に不幸です。
ClientIDにアクセスすると、ソースに表示されるIDは次のとおりです。
myControl_myTextBox
ClientIDにアクセスする行をコメントアウトすると、IDは次のようにレンダリングされます。
ctl00_BodyPlaceHolder_myControl_myTextBox
ClientIDにアクセスする行は次のようになります。
jsBuilder.AppendFormat(@"var filter = new TBFilter($(""#{0}"")[0]);", myTextBox.ClientID);
これ自体は気になりませんが、ポストバックを壊すという事実は気になります!そのテキストボックスに何かを入力して送信ボタンを押すと(ページに送信ボタンがあります!)、ページが再読み込みされますが、デフォルト値がテキストボックスに戻され、元の値が完全に無視されます。狂気-私は特に奇妙で普通ではないことを何もしていませんが、なぜそれがポストバックを壊したのですか?