ItemCreatedイベントに登録することはどうですか?
マークアップ:
<asp:datagrid id="DGrid" runat="server" OnItemCreated="DGrid_ItemCreated" AutoGenerateColumns="false">...</asp:DataGrid>
コードビハインド:
protected void DGrid_ItemCreated(object sender, DataGridItemEventArgs e)
{
var ph e.Item.FindControl("PH") as PlaceHolder;
// ...
}
UPDATE
e.Item.DataItem
がポストバックでnull
ときの状況について:唯一の信頼できる情報(例えば、データ・バインドコントロールプロパティ)は、ポストバック(ViewStateが有効な場合)、t彼は全データ項目がそれらを生き残らない。したがって、自分で状態を管理する必要があります。必要なデータだけをViewStateに保持することができます(データ項目全体を吹き飛ばすことはできません)。
私はまだ何とかポストバックのバインドされたデータにアクセスする必要があります - e.Item.DataItemはそれまでにNULLであるようです。 – hrnt
私の更新を見てください。 – volpav
通常、e.Item.DataItemはviewstateの問題ではなく、ヘッダーまたはフッターの行をレンダリングしているため、nullです。 if(e.Item.DataItemが何もない){return;}を実行し、何が起こるかを見てください。 – Peter