3

私は .NET の初心者ですが、ここに私の質問があります。

Master Pagesを利用するアプリケーションがあります。住所情報の入力に使用されるフォームビューがあるページがあります。insertitemtemplate には、参照しているユーザー コントロールがあります。このユーザー コントロールは、国を一覧表示するドロップダウン リストです。ユーザー コントロールには、選択した値を取得および設定するためのパブリック プロパティがあります。ユーザーコントロールはデータバインドされていませんが、静的です。ユーザー コントロール.ascxファイル内のユーザー コントロールの ID は "DropDownListCountry" です。ページのフォームビューで参照すると、IDは「fvDropDownListCountry」です。

フォームビューのユーザー入力を保存するコマンドを実行しているときに、ユーザーが選択した国の選択値を取得したいと考えています。テキスト ボックスである他の入力領域については、次のようなコードを使用できます。

Dim street1 As String = CType(myFrmView.FindControl("fvTextBoxStreet1"), TextBox).Text

明らかに、このアプローチは、ユーザー コントロール内にあるドロップダウン リストでは機能しません。たとえば、使用できません:

Dim country As String = TryCast(myFrmView.FindControl("fvDropDownListCountry"), DropDownList).SelectedValue

このユーザーコントロールから選択された値を取得する方法についての答えを見つけるために、私は周りを見回しましたが、これは初めてで、まだ見つけていません。子コントロールのコントロールを再帰的に調べる関数を調べましたが、これを機能させることができませんでした。

どんな助けでもいただければ幸いです

4

1 に答える 1

0

この値をどこで取得しようとしていますか?asp.net TextBox<input type=text />は自動的に状態を維持しますが、これはasp.netDropDownListには当てはまりません。<select />

PageInit中にDropDownListにアクセスしようとしている場合、ViewStateが使用できないため、その値はまだロードされていません。PageLoadでアクセスするか、DropDownListのSelectedIndexChangedイベントの一部としてアクセスする必要があります。

参考:PageInit中にSelectedIndexまたはSelectedValueプロパティを設定できることは確かですが、その値を読み取ることはできません。

于 2012-10-11T14:59:01.710 に答える