2010-12-13 15 views
1

ページにデータバインドされたドロップダウンリストがあります。ここではselectedValue(not isPostBack内)を設定しています。値を設定した後にdropDownListのselectedValue()を取得

私は試してselectedValue()を取得し、それを画面に表示すると、ページが正常に表示され、正しい項目が選択されたように見えますが、常にnullを返します... selectedIndexは-1です。

ボタンをクリックすると、このddlのselectedValueを参照して、ここに期待される結果が得られます。ページの読み込み中に、設定した直後は表示されません。

歓声:)

編集:コード..

DDL宣言

<asp:DropDownList runat="server" ID="dlCountryList" DataSourceID="dsCountryList" 
       DataValueField="countrylistid" DataTextField="description"> 
</asp:DropDownList> 

とをPage_Load

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    dlCountryList.SelectedValue = "GR" 
    Response.Write("*" + CStr(dlCountryList.SelectedIndex) + "*") 
End Sub 
+0

ドロップダウンリストのマークアップとC#/ VBコードのセクションをPage_Loadから貼り付けることはできますか? – jwiscarson

+0

選択した値を設定した後、手動でdll DataBind()メソッドを呼び出してみてください。 –

+0

@jwiscarson - 上のコードを参照 –

答えて

1

手動降下のDataBind()メソッドを呼び出します選択した値を設定します。

SelectedValueは、コントロールの通常のget/setプロパティではなく、ドロップダウンがバインドされるときに使用される「フラグ」を設定するだけです。

デフォルトでは、Page_Loadイベントの後にバインドされますが、どのイベントが正確かはわかりませんが、手動で呼び出すこともできます。

+0

ありがとう:)私はちょうどそれを覚えておく必要があります簡単な! –

+0

@ Tabloo問題はありません。Reflectorで掘り下げた後、SelectedValueを設定すると、ドロップダウン内の適切なItemのSelectedプロパティがtrueに設定されていることがわかりましたが、ドロップダウンのSelectedIndexを設定していないため、SelectedValueゲッターは単純に: 'return this.Items [selectedIndex] .Value'(それはselectedIndexが-1でない前にチェックしています)ので、常にnullである理由を説明しています。 –

+0

私はこれがページのライフサイクルの問題だと思っていました。 – jwiscarson

関連する問題