これはこれに関連している可能性があると思いますが、残念ながらこの場合、回避策は機能しないようです。
より大きな実装が機能しないことに苦労した後、私はそれを最も単純なケースに要約しました。これは動作しません。
public class MyButton : Control
{
public MyButton()
: base()
{
LinkButton but = new LinkButton();
but.CommandName = "test";
but.CommandArgument = "test2";
but.Text = "Click Here";
Controls.Add(but);
}
}
レンダリングされるものは次のとおりです。
<a href="javascript:__doPostBack('ctl00$ctl11$ctl07','')">Click Here</a>
ここには2つの大きな問題があります。まず、IDがありません。タグが必要id='ctl00$ctl11$ctl07'
です。そのため、投稿されても、イベントがキャプチャされることはありません。
次に、CommandNameとCommandArgumentを無視しているので、__doPostBackWithOptions
とにかくレンダリングする必要があります。
私は非常に愚かで、明らかな何かを見落としているだけですか、それともこれはASP.NETの大きなバグですか?
私はこれまで何度もこれを行ってきましたが、Control
またはの内部に他の多くのコントロールがレンダリングされWebControl
ていて、問題が発生したことはありませんでした。したがって、複雑さではなく単純さに関係しているに違いありません。
誰かが私がこれを解決するのを手伝ってくれるなら、それは大いにありがたいです。