複合コントロールがポストバックデータを自動的に処理することを私は知っています。ただし、ドロップダウンを複合コントロールに配置し、すべてのポストバックにバインドするという要件があります。
すべてのポストバックの後、ドロップダウンが選択した値を保持していることがわかります。
問題は、ポストバック中に、選択した値を取得しようとすると、その値が空になることです。
これは、選択した値を早く取得しようとしているためだと思います。(dropdown.databind()を実行した直後)
ポストバックデータコレクションから選択した値を取得する方法を教えてもらえますか?または、どのイベントで、複合コントロールで正しい選択値を取得しますか?
ここに私のovverridendatabindメソッドがあります:
public override void DataBind()
{
base.DataBind();
addressDataSet = new AddressDataSet();
countryAdapter = new CountriesForAddressTableAdapter();
countryAdapter.Fill(addressDataSet.CountriesForAddress);
maindropdown.DataSource = addressDataSet.CountriesForAddress;
maindropdown.DataTextField = "Name";
maindropdown.DataValueField = "CountryId";
maindropdown.DataBind();
if (!maindropdown.Value.IsNullOrEmpty()) <- THIS Value ALWAYS COMES AS NULL
{
fieldAdapter = new CountrySpecificFieldsTableAdapter();
fieldAdapter.Fill(addressDataSet.CountrySpecificFields, int.Parse(maindropdown.Value));
}
}
//HttpContext.Current.Request.Form[]<-ここにドロップダウンの値が見つかりました
しかし、dropdownsプロパティ(dropdown.selectedValue)を介して値を取得するために何をしなければならないか知りたいです