DropDownListを含むFormViewを含むUserControlがあります。FormViewはデータコントロールにバインドされています。
そのようです:
<asp:FormView ID="frmEdit" DataKeyNames="MetricCode" runat="server" DefaultMode="Edit" DataSourceID="llbDataSource" Cellpadding="0" >
<EditItemTemplate>
<asp:DropDownList ID="ParentMetricCode" runat="server" SelectedValue='<%# Bind("ParentMetricCode") %>' />
</EditItemTemplate>
<asp:FormView>
コードビハインドからDropDownListにデータを入力しようとしています。これがFormViewに含まれていなかった場合、通常はPage_Loadイベントで行います。ただし、FormView内では機能しません。コードでドロップダウンリストにアクセスして、実行しようとするとすぐに、次のようになります。
theListcontrol = CType(formView.FindControl(listControlName), ListControl)
... FormViewのデータバインディングメカニズムが呼び出されます。これはもちろん、DropDownListを基になるデータソースにバインドしようとします。これにより、**'ParentMetricCode'のSelectedValueが無効になります。これは、アイテム。DropDownListがまだ入力されていないため、「パラメーター名:値...」エラー。
FormViewのDataBinding()イベントでロードを実行しようとしましたが、次のようになりました。
theListcontrol = CType(formView.FindControl(listControlName), System.Web.UI.WebControls.ListControl)
...その時点でFormView.Controls.Count=0であるため、失敗します。
これは不可能ですか?(ドロップダウンリストをバインドするためにセカンダリObjectDataSourceを使用する必要はありません)