2012-04-16 4 views
1

ユーザーコントロールをフォームビューアイテムテンプレートに追加しましたが、パブリックプロパティをユーザーコントロールに追加しました。プロパティを設定する方法がわかりません。私は以下を試しました:FormViewでPublicプロパティを使用するユーザーコントロール

<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イベントも試しました。これはどちらもうまくいかなかった。

答えて

1

誤った場所にコントロールを設定しようとしているようです。あなたはそれをInitに設定する必要があります。次

ASP.NET Page Life Cycle Overview状態:すべてのコントロールが初期化されており、あらゆる肌の設定が適用された後に発生

Init

Init 個々のコントロールのイベントは、ページの Init イベントの前に発生します。このイベントを使用して、制御 のプロパティを読み込みまたは初期化します。