1

フォーム ビュー アイテム テンプレートにユーザー コントロールを追加しましたが、ユーザー コントロールにパブリック プロパティを追加しましたが、プロパティの設定方法がわかりません。私は次のことを試しました:

<uc1:OfacControl id="OfacControl1" runat="server" AssetEvictionId='<%# Bind("AssetEvictionId") %>' />

しかし、値が正しく設定されることはありません。

また、preRender メソッドのフォームのコード ビハインドで次のように試してみました。

var assetEvictionIdHiddenField = (HiddenField)oFormView.FindControl("AssetEvictionIdHiddenField");
var OfacControl1 = (Ofac)oFormView.FindControl("OfacControl1");

if (OfacControl1 != null && assetEvictionIdHiddenField != null)
    OfacControl1.AssetEvictionId = Convert.ToInt32(assetEvictionIdHiddenField.Value);

これもうまくいきません。

タイミングの問題のようです。値が設定されているのとは異なる時間にコントロールがレンダリングされているようです。バインド構文が機能せず、コード ビハインドを使用せざるを得ない場合は、どのフォーム ビュー イベントを使用して値を設定する必要がありますか。OnItemCreated イベントも試しました。これもうまくいきませんでした。

4

1 に答える 1

1

コントロールを間違った場所に設定しようとしているようです。Initで設定する必要があります。

ASP.NETページのライフサイクルの概要には、次のように記載されています。

初期化

すべてのコントロールが初期化され、スキン設定が適用された後に発生します。 個々のコントロールのInitイベントは、ページのInitイベントの前に 発生 ます 。このイベントを使用して、コントロールプロパティを読み取ったり初期化したりします。

于 2012-04-16T21:12:31.503 に答える