2012-04-06 3 views
0

私のフォームに2つのDropDownListsがあります。どちらにもアイテムはありません。私のPage_Loadイベントでは、プライベートメソッドから返されたDropDownListオブジェクトにそれらを割り当てます。しかし、ページが両方ともロードされるとき、ドロップダウンリストはまだ空です。私は、埋め込まれたドロップダウンリストを返すメソッド内でデバッグしました、それらはアイテムを含んでいます。そうすることに何か問題はありますか?C# - 空のドロップダウンリストを完全なものに割り当てることはできません

コード:私は私のページに表示されているすべてのアイテムを取得ddlUserTypesの()の項目をResponse.Writeをも

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     ddlUserTypes = UserTypesList(); 
    } 
} 

    private DropDownList UserTypesList() 
{ 
    DropDownList ddList = new DropDownList(); 
    StaticDataProvider stDataProv = new StaticDataProvider(); 
    ddList.DataSource = stDataProv.UserTypes(); 
    ddList.DataTextField = "Value"; 
    ddList.DataValueField = "Key"; 
    ddList.DataBind(); 

    return ddList; 
} 

。それはアイテムがそこにあるようだ、彼らは目に見えないだけです。

+4

コードは表示できますか? WebフォームまたはMVC? – Seany84

+0

それはASP.NETのウェブサイト –

答えて

0
if (!IsPostBack) 
    { 
     UserTypesList(ddlUserTypes); 
    } 


private void UserTypesList(DropDownList ddList) 
{ 
    StaticDataProvider stDataProv = new StaticDataProvider(); 
    ddList.DataSource = stDataProv.UserTypes(); 
    ddList.DataTextField = "Value"; 
    ddList.DataValueField = "Key"; 
    ddList.DataBind(); 
} 

コントロールの新しいインスタンスを作成し、単にページの現在のインスタンスに割り当てます。新しいコントロールを作成するときは、Controls.Addを使用する必要があります。これはおそらくバックグラウンドで行われます。

+0

うーん、すてきなスポット。どうもありがとうございました –

+0

私は体をdownvoteしませんでした。なぜ私はそれをするだろうか? –

0

コードは表示できますか? WebフォームまたはMVC?

ドロップダウンリストの.DataBind()を呼び出していますか、ドロップダウンリストのDataValueFieldとDataTextFieldプロパティを設定しようとしましたか?

本当に

+0

です。あなたはコメントセクションを使用することができます.. –

-1

コードここ

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     UserTypesList(ddlUserTypes); 
    } 
} 

    private void UserTypesList(DropDownList ddList) 
{ 

    StaticDataProvider stDataProv = new StaticDataProvider(); 
    ddList.DataSource = stDataProv.UserTypes(); 
    ddList.DataTextField = "Value"; 
    ddList.DataValueField = "Key"; 
    ddList.DataBind(); 

} 
4

を試してみてください。..答えを提供するために、あなたのコードを参照する必要があります。ロードハンドラの代わりにプレレンダリングイベントハンドラで実行してください。

+0

あなたは誰が彼の問題を引き受けるのですか?彼はどのようにアイテムを追加するかは言わない。私はdownvoteを理解していない。 – zeal

+0

OPが質問を編集しましたが、これは問題ではありません。ときどき私たちは待つ必要があります答えと一緒にジャンプしないでください。 –

+0

私はdownvoteを削除したので、あなたが知っている –

0

ための修正は、任意のコードを見ることなく、推測です

DropDownLists.Items.Refresh 
関連する問題