2011-06-25 27 views
0

C#.NETの新機能です。私は私がしたいことは、私は、変数listAgeのデータバインディングを使用し、ちょうど私がこのコードを入れ.aspxファイル内には1から100変数が現在のコンテキストに存在しません

に年齢の選択を表示することです...これがどのように機能するかをお願いしたいと思います。ここで

<asp:DropDownList ID="AgeDropDown" runat="server"> 
    <%# listAge %> 
</asp:DropDownList> 

はそれをコードビハインドです:

protected void Page_Load(object sender, EventArgs e) 
{    
    for (int i = 1; i < 101; i++) 
    { 
     string listAge; 
     listAge = "<asp:ListItem>"+ i +"</asp:ListItem>"; 
    } 
} 

.aspxの内側に表示されるエラーは以下のとおりです。コントロールの作成

エラー:AgeDropDown - コード・ブロックは、この中にはサポートされていません。コンテキスト。

変数listAgeのために?

ありがとうございました!

答えて

2

ドロップ.aspxの中<%の%>セクションとあなたの背後にあるコードではこのような何か行う必要があります。

    :あなたのコード内のいくつかの欠陥がある、別の観点からは

    protected void Page_Load(object sender, EventArgs e) 
    {   
        AgeDropDown.Items.Clear(); 
        for (int i = 1; i < 101; i++) 
        { 
         AgeDropDown.Items.Add(new ListItem(i.ToString(),i.ToString())); 
        } 
    } 
    

  1. ASP.NETタグをコードの背後に生成しています。 ASPタグはサーバー上で処理され、htmlタグにレンダリングされます。あなたは実際にHTMLでタグを挿入していました.HTMLタグは有効なHTMLタグではないため、単純なテキストとしてレンダリングされます。
  2. forループの各繰り返しで新しいlistAge変数を作成していました。コードが機能しても、最後の項目が表示されます
+0

「AgeDropDown.Items.Add(新しいListItem(i.ToString()));」のようなコードを編集するだけで動作します。 – Ryan

+0

Btw、二重の 'i.ToString()'は何ですか? – Ryan

+0

2番目のパラメータはアイテムに関連付けられた値です。これはIDなどの何か異なる可能性があります – Pasman

0

これはasp.netまたはMVCですか?

おそらく

... <%#listAge%>

あなたはAgeDropDownのサーバのバージョンを使用することができ

... <% = listAge%>

+0

asp.net専用です – Ryan

1

でなければなりません。

ListItem li; 
for (int i = 1; i < 101; i++) 
{ 
    li = new ListItem(i.ToString(), i.ToString()); 
    AgeDropDown.Items.Add(li); 
} 
関連する問題