0

より多くのユーザーコントロールを保持するためのコンテナーとして機能するユーザーコントロールがあります。

すべての子コントロールにデータがバインドされたら、特定のアクセスチェックを実行する必要があります。

usercontrol.databoundイベントにアタッチできることを望んでいましたが、存在しないようです。

他のユーザーコントロールにデータがバインドされたら、親ユーザーコントロールに対して他にどのようなオプションを実行する必要がありますか。子コントロールを取得して、データがバインドされていることを親に通知する必要があると想定します。親は、データがバインドされているものとされていないものを追跡する必要があり、すべてのデータがバインドされている場合は、アクションを実行できます。

4

2 に答える 2

0

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

于 2010-08-17T05:01:52.217 に答える
-1

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ファイルからアイテムを最初に取得するためにページ上のいくつかのCheckBoxListが必要でした。 XMLデータに基づいてアイテムをチェックするコード

それ以降、UpdateSelectionはドロップダウンリストSelectedIndexChangedイベントで呼び出されます(PostBacksを実行するため、PreRenderCompleteではUpdateSelectionを2回実行しないように無視します)

于 2013-07-11T08:21:38.020 に答える