• ベストアンサー

DropDownList

前提: ASP.NET Visual C# DropDownListのリストに文字列を配列で読み込みたいのですが、エラー(無効な引数がいくつか含まれています。)が出てしまい私の頭では限界です。どうかご教授ください。 (例) string[] Gengou = { "明治","大正", "昭和", "平成"}; DropDownList1.Items.AddRange(Gengou);

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

少し意図とは違うかもしれませんが、 //方法1 string[] Gengou = { "明治", "大正", "昭和", "平成" }; foreach (string gengouMember in Gengou) { DropDownList1.Items.Add(new ListItem(gengouMember)); } //方法2 DropDownList1.Items.AddRange(new ListItem[]{new ListItem("明治") ,new ListItem("大正") ,new ListItem("昭和") ,new ListItem("平成")}); のような感じでしょうか。

rokihi777
質問者

お礼

ありがとうございます 参考になりました foreach文とfor文の違いも教えていただけないでしょうか?

その他の回答 (2)

回答No.3

#1です。 ざっくりですが、回数なり上限なり、ループの終了条件がある場合はfor、 全ての要素を処理の対象にする場合はforeachかな。 詳しくは、以下のリファレンスをご参照ください。 MSDN C# プログラマーズ リファレンス (for) http://msdn2.microsoft.com/ja-jp/library/ch45axte.aspx (foreach、in) http://msdn2.microsoft.com/ja-jp/library/ttw7t8t6.aspx

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.2

リファレンスをよく読みましょう。 DropDownListクラスのItemsプロパティはListItemCollectionクラスで、ListItemCollectionクラスのAddRangeメソッドの引数はListItemクラスの配列です。 質問者さんのソースを見ると、ListItemクラスの配列が要求されているところにstringクラスの配列を渡しているのでエラーになります。 解決方法は既に#1さんが回答されているとおりです。

関連するQ&A

  • ASP.NETのDropDownListについて

     Visual Studio 2010でWebアプリケーションを作成しているのですが、ツールボックスにComboBoxがなく、DropDownListでComboBoxなるものを作ろうと考えております。  動作としてはカウントしたものを配列に格納して、それをDropDownListにItemとして追加し、表示しようと考えています。  それで作成し、実行してみると、DropDownListにはカウントの最後の数字のみ(1,2,3,4,5を格納した場合、5のみ)が表示されてしまいます。VBでならきちんと5行のリストが出てくるのですが、ASP.NETで行うと更新されているためか上手く表示することができません。  どなたか詳しい方おられましたら、ご回答よろしくお願いいたします。  

  • DropDownList に指定した値を表示したい

    <開発環境>asp.net A画面のgridviewで指定されたkeyの詳細情報をB画面のgridviewで表示しています。 B画面ではgridviewのTemplateFieldにDropDownListを作成しています。 DropDownListはSqlDataSourceをバインドさせているのですが、A画面でデータを選択し 修正ボタンを押下した時にB画面のDropDownListに初期表示する方法がわかりません。 どのようにすれば表示できるのでしょうか? ちなみにA画面でKBNNAMEが"愛知県"だとB画面で"愛知県"と表示したいです。 -------------------------------------------------------------------------------- <asp:GridView ID="grdList" CssClass="list" runat="server" AutoGenerateColumns="False" DataSourceID="sqldsList"> <Columns> <ItemTemplate> <asp:DropDownList CssClass="cnbstr" ID="cnbBB_KBN" runat="server" DataSourceID="sqldscnb1" DataTextField="KBNNAME" DataValueField="KBNORDER" AutoPostBack="True"></asp:DropDownList> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> -------------------------------------------------------------------------------- <asp:SqlDataSource ID="sqldscnb1" runat="server" ConnectionString="<%$ ConnectionStrings:InformationUseConnectionString %>" SelectCommand="SELECT KBNORDER, KBNNAME FROM table1 WHERE (NO = @NO) AND (ITEMNO = @ITEMNO) ORDER BY KBNORDER" DeleteCommandType="StoredProcedure"> <SelectParameters> <asp:SessionParameter Name="NO" SessionField="BBList_NO" Size="2" Type="String" /> <asp:Parameter DefaultValue="01" Name="ITEMNO" Size="2" Type="String" /> </SelectParameters> </asp:SqlDataSource>

  • 明治と大正と昭和と平成

    時代の、明治•大正•昭和•平成 で、好きな順番は何ですか? 私は、明治→昭和→大正→平成 です。

  • 年号に因んだ名称の事例をお教えください。

    明治・大正・昭和・平成での企業名や公園や建造物等で知りたいです。 ex 明治:明治村 大正:大正製薬 昭和:昭和新山 平成:平成銀行

  • ”ListBoxへのAddでエラー”

    タイトルの通りです。 DoubleからStringの型変換が不可なんでしょうか? ”.ToString” によってエラーになってるようです。 For~Eachでの3行で処理するとOKなのですが1行で なんとかならないものかと調べていましたが、いきずまっています。 Items.AddではなくItems.AddRangeを使う場合、どういうふうに 書くんでしょうか?。ちなみに、配列がString型の場合にはエラー にならないことは知っています。(.ToStringも不要) ’--------サンプル---------- Public Class Form1 Private Sub Button1_Click() Handles Button1.Click Dim Test_arr() As Double = {1.4, 1.2, 1.9, 1.7, 1.4, 2.8, 1.2, 3.2, 1.99, 4.2} ListBox1.Items.AddRange(Test_arr.ToString) '←この行でエラー For Each x As Double In Test_arr '←これはOK ListBox1.Items.Add(x.ToString) ' Next ' End Sub End Class エラー内容は、↓ ------------------------------------------------------------------ エラー 1 これらの引数で呼び出される、アクセス可能な 'AddRange' が ないため、オーバーロードの解決に失敗しました: 'Public Sub AddRange(items() As Object)': 型 'String' の値を 'Object の 1 次元配列' に変換できません。 'Public Sub AddRange(value As System.Windows.Forms.ListBox.ObjectCollection)': 型 'String' の 値を 'System.Windows.Forms.ListBox.ObjectCollection' に変換できません。 ------------------------------------------------------------------ どなたかご教授願えれば幸いです。環境はVisualBasic2010+WindowsXPです。

  • 明治・大正・昭和・平成で、好きな順番は何ですか?

    私は、そのまま明治→大正→昭和→平成 です。

  • 和暦変換

    和暦変換で悩んでいます。 悩んでいるのは明治→大正、大正→昭和で重なっている日についてです。 明治の範囲 明治元年9月8日(1868/10/23)~明治45年7月30日(1912/7/30) 大正の範囲 大正元年7月30日(1912/7/30)~大正15年12月25日(1926/12/25) 昭和の範囲 昭和元年12月25日(1926/12/25)~昭和64年1月7日(1989/1/7) 平成の範囲 平成元年1月8日(1989/1/8)~ ということなんですが、例えば「1912/7/30」を和暦に変換するときは、どちらにすべきなんでしょうか? ちなみにMicrosoftExcel で入力すると「1912/7/30」→「大正1年7月30日」と表示され 「明治45年7月30日」と入力しても、次のセルに移動すると「大正1年7月30日」となります。 ということは「1912/7/30」は大正と考えるべきなんでしょうか? (もっともExcel自体が1900/1/1までしか対応しておらず、 明治33年1月1日の前日が明治33年1月0日となるので。。。賢いんだかアレなんだかよくわからない^^;) 同様に「1926/12/25」は昭和でよいのか、大正で良いのかも判りません。 ここら辺が詳しい方、ぜひ教えてくださいませ<(_ _)>

  • 平成とつく有名企業が無いのは何故ですか?

    明治製菓… 大正製薬… 昭和シェル… など 明治から昭和の名前が付く有名な大企業はありますが平成○○と言う有名な企業はありませんが それは何故でしょうか?

  • ここまでの「平成」は、どんな言葉で表せる時代ですか?

    昭和は「昭和元禄」、大正は「大正浪漫」、明治は「明治維新」などといった言葉で、それぞれの時代の特徴が表現されていました。 今の「平成」も、もう既に20年目に入っていますので、その特徴というものもかなり明らかになってきているようにも思います。 そこで、皆さんが考える平成時代の特徴を、「平成○○」、或いは「○○な平成」といった言葉で言い表してみていただきたいのです。 あまり難しく考えていただかなくても結構ですし、平成時代の一面でも垣間見れれば、かなり飛んだ?ご回答も歓迎します。 では宜しくお願いします。

  • 明治、大正、昭和、平成・・・仲間外れはどれ?

    明治、大正、昭和、平成 この中で、仲間外れはどれですか?

専門家に質問してみよう