質問

私は、その中により多くのusercontrolを保持するための容器として機能するusercontrolを持っています。

すべての子供のコントロールがデータバウンドを持っていると、特定のアクセスチェックを実行する必要があります。

usercontrol.databoundイベントに添付できることを望んでいましたが、それはないようです。

他のusercontrolsがデータバウンドを持っていると、親のusercontrolで何かをしなければならない他のオプションがあります。私は子供のコントロールを取得してデータバウンドを持っている親に通知しなければならないと思います。親は、どちらがデータバウンドを持っていて、それらがすべてデータバウンドを持っていないときに、そのアクションをpeformすることができます。

役に立ちましたか?

解決

親に通知するために子供のコントロールを取得する必要はありません。を見てください ASP.NETページ:ライフサイクル. 。プレレンダーイベントでコードをコンテナユーザーコントロールに入れる必要があります。これは、ポストバックイベントの後に実行されます。

他のヒント

に基づく ASP.NETページライフサイクルイベント 記事私はこれを使用しました:

protected void Page_PreRenderComplete(object sender, EventArgs e)
{
  if (!IsPostBack) //only at 1st load
    UpdateSelection();
}

protected void UpdateSelection()
{
  UpdateSelection(listItems.SelectedValue);
}

protected void listItems_SelectedIndexChanged(object sender, EventArgs e)
{
  UpdateSelection();
}

私の場合、UpdateSelectionは、ドロップダウンリスト(開始時にインデックス0を指している)で選択されたファイルからXMLデータをロードしていました。 XMLデータに基づいてそれらのアイテムを確認するコード

それ以降、更新セレクションはドロップダウンリストSelectedIndExChangedイベントで呼び出されたばかりです(それらはPostBackを行いますので、PrerenderCompleteでは、更新セレクションを2回行わないようにそれらを無視します)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top