これは私を夢中にさせています。
私は非常にシンプルなユーザーコントロールを持っています:
public int? ImageId {set; get;}
protected void Page_Load(object sender, EventArgs e)
{
... do something with ImageId...
}
次に、このコントロールをUpdatePanel内のListViewのあるページに配置します。
<asp:ListView ID="ListViewImages" runat="server" DataSourceID="src">
<LayoutTemplate>
<asp:PlaceHolder ID="itemPlaceholder" runat="server" />
</LayoutTemplate>
<ItemTemplate>
<My:MyControl ImageId='<%# Eval("Id") %>' ID="cipPreview" runat="server" />
</ItemTemplate>
</asp:ListView>
問題は、ASP.NETがImageIdを設定する前にPage_Loadが起動することです。デバッガーの助けを借りて、何らかの理由でMyControlのImageIdが設定されていることがわかりましたが、これはPage_Loadの処理が終了した後にのみ発生します。どうしたの?