BC30002: 型 'ListItem' が定義されていません

このQ&Aのポイント
  • ASP.NET2.0でドロップダウンリストにitemを追加しようとすると、型 'ListItem' が定義されていないというコンパイルエラーが発生します。
  • サイトのファイルをアップロードし直した後に問題が発生しました。
  • 初心者のため、コードの問題かIISの問題かわかりません。助けてください。
回答を見る
  • ベストアンサー

BC30002: 型 'ListItem' が定義されていません となり動きません

ASP初心者です。 ASP.NET2.0でドロップダウンリストに以下のコードでitemを追加しようとすると「コンパイル エラー メッセージ: BC30002: 型 'ListItem' が定義されていません。」となり動きません。当初はうまく動いていたのですが、サイトのファイルすべてをアップロードし直してから動かなくなりました。 初心者ゆえコードが悪いのか、IISに問題があるのかさっぱりわかりません。どなたかお教えいただけませんでしょうか。 よろしくお願いいたします。 ------------------------------------------------- Dim i as Integer Dim liitem As ListItem 'ここでエラーになります For i = 1 To 15 liitem = New ListItem liitem.Text = i liitem.Value = i+100 Me.DropDownList.Items.Add(liitem) Next i 変数を宣言せず Me.DropDownList.Items.Add(New ListItem(i, i+100)) として追加しようとしても同じでした。 よろしくお願いいたします。

  • DSF7
  • お礼率100% (1/1)

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

宣言に使った ListItemを Systemからの完全修飾で書いてみてはいかがでしょう Dim liitem as System.Web.UI.WebControls.ListItem といった具合ですが ・・・ これで通るなら Imports宣言がおかしくなっている可能性があります

DSF7
質問者

お礼

ご回答ありがとうございます。 ご指摘の通り完全修飾で書いてみたところ通りました。 ありがとうございます。 IISで改めてサイトを作り、あげ直したところ完全修飾でなくても 通るようになりました。 いろいろ調べましたが、解決の糸口がわからず困っていましたので、 大変助かりました。ありがとうございます。

関連するQ&A

  • BC30002 型 List が定義されていません

    ASP.NETにてWEBアプリケーションを作っています。 IISのバージョン? によってエラーが出たり出なかったりしており、解決方法を探しています。 <エラーの起きる行> Dim xxx As New List(Of ReportParameter) <エラー内容> BC30002: 型 'List' が定義されていません。 <エラーの起きる環境> 環境 Win7/IIS7.5 Microsoft .NET Framework バージョン:2.0.50727.5446; ASP.NET バージョン:2.0.50727.5420 IIS6ですとエラーが起きず、きちんと動くのです。 情報をお持ちの方はお願いします。

  • ComboBoxのItem追加

    VB.NETでの開発初心者です。 ComboBoxのItem追加について、1行づつ追加していくのは理解できているのですが、HTMLでのListBox「OPTIONS設定」の様にArrayListにて一括追加する方法がわかりません。 ご存知の方、よろしくお願いします。  <1行づつ追加>  Me.ComboBox1.Items.Clear()  Me.ComboBox1.Items.Add(New ComboItems(Key値, 表示値))    ※ComboItemsクラスは、別途作成 <一括追加>  Dim comboArray As New ArrayList  comboArray.Add(New ComboItems(Key値, 表示値))  Me.ComboBox1.Items.???(comboArray) ← ここがわからない  

  • 実行時追加したコントロールの識別

    VB2008を使用しています。 プログラム実行中に追加したコントロールをどのように識別すればいいのかがわからなくて困っています。 例えば以下のようにすると、 itemsが1と2のコンボボックスが10個できますが、 すべてNewComboBoxという名前のコントロールのため、 最終的にそれぞれ1か2どちらを選択したかを知りたいときに、 10個のコントロールをどのように識別すればよいかわかりません。 Dim NewComboBox As ComboBox = New ComboBox() For i = 1 To 10 NewComboBox = New ComboBox() NewComboBox.Items.Add(1) NewComboBox.Items.Add(2) NewComboBox.Location = New Point(5, 5 + (24 * (i - 1))) Me.Controls.Add(NewComboBox) Next 説明が不明瞭であるかもしれませんが、 お分かりの方いらっしゃいましたら、ご回答願います。

  • DatagridviewComboboxCellについて聞きたいですが

    DatagridviewComboboxCellについて聞きたいですが、 各セルのコンボボックスに違い値を入れたいけど、以下のエラーが出ました。 "指定されたセルはグリッドにすでに属しています"。 ソース例: Dim Reader As FileReader = New FileReader("C://text.txt") Dim cbb as New DatagridviewComboboxCell() Dim cbb1 as New DatagridviewComboboxCell() Dim strA as String = "" Dim t as integer = 0 Me.Controls.Add(Dtgrdview) Dtgrdview.ColumnCount = 5 . (省略) For i as Integer = 0 to 10 Select case strA Case "A" cbb.Items.Add(Cstr(i)) Case "B" cbb1.Items.Add(Cstr(i+1)) End Select Next With Dtgrdview.Rows While not Reader.EndofData     Dim _readFile As readFile = New readFile(Reader.ReadFields()) '(readFile.vbは別) Dim row As String() = _ {_readFile.Class,_readFile.Name,_readFile.Year,_readFile.Add} ' Dtgrdview.Rows.Add(row) Select Case _readFile.ID Case "A" Dtgrdview.Rows(t).Cells(4) = cbb ==> t= 1 エラーが出る Case Else Dtgrdview.Rows(t).Cells(4) = cbb1 End Select t += 1 End While ReadFile.Close() End With 解決方法を教えてください。ありがとうございます。

  • コレクションの数値をSortで並び替える

    ご多忙中申し訳ありません。 Dim data As New List(Of Integer)で型指定した、dataの数値を単純に、下記のコードのようにdata.Sort() で並べ替えをしても綺麗に並べ替えが出来ますが、殆どのサイトでは、このような使い方をせず、IComparerインターフェイスを実装したクラスを使ったり、又はバブルソートなどを使って並べ替えをしていますが。 単純にdata.Sort() のような、並べ替えは問題があるのでしょうか、大変恐縮ですがご教示ください。 FormにButtonとListBoxを貼り付けました。 Dim data As New List(Of Integer) 'Integer型にする。 Private Sub f() Handles MyBase.Load 'データをaddする。 data.Add(235) data.Add(4) data.Add(567) data.Add(53) data.Add(56) data.Add(87943) data.Add(43) data.Add(890) data.Add(342) data.Add(56) data.Add(64) data.Add(5) data.Add(0) ListBox1.Items.Clear() End Sub Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Dim i As Integer Dim dtcnt As Integer 'リストの数の変数。 dtcnt = data.Count 'リストの数を取得してループの回数に使う。 data.Sort() '並べ替え For i = 0 To dtcnt - 1 ListBox1.Items.Add(data(i)) 'テストの結果をリストボックスに表示。 Next 'ListBox1には綺麗に並べ替えが完了して表示されています。 End Sub 何卒宜しくお願いします。

  • dropdownlistのvalue値の取得方法について

    VS2005 WinXP pro 下のようにページ表示時にDropDownListに年を入れています。 しかし、DropDownListを何に変更してもSelectedIndexした 値が取れてしまい困っています (今なら常に2008が取れてしまう) 本当なら2009を選択したときは下の関数で 2009と表示したいのです。 お力添えお願いいたします。 Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load '-------------------------------------------------------------------------------------- ' 年をコンボボックスに追加 '-------------------------------------------------------------------------------------- Dim sNum As Integer = 0 Dim y As Integer For y = 2007 To Year(Now) + 3 cmbYear.Items.Add(New ListItem(y, y)) If y = Year(Now) Then cmbYear.SelectedIndex = sNum ←ここを消すと正しく動く End If sNum += 1 Next End Sub Protected Sub btnEdit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnEdit.Click '-------------------------------------------------------------------------------------- ' 選択項目の取得 '-------------------------------------------------------------------------------------- MsgBox(cmbYear.Items.Item(cmbYear.SelectedIndex).Value) 2008 MsgBox(cmbYear.SelectedValue) ←2008 どちらも2008 End Sub 以上、よろしくお願い致します。

  • ComboBoxのプロパティについて

    コンボボックスに年数を表示します。 プロパティはDropDownListです。 dim year as integer For year = 1990 to 2010 yearcombobox.items.add(year) Next 質問:コンボボックスに年数以外に空白を一つ 入れたいですが(年数と空白を両方選択できるように作りたいです。) どなたか教えて下さい。

  • vb.bet リストボックスの2項目の表示

    vb.net始めて3ヶ月の超初心者ですのでよろしくお願いいたします。 リストボックスにYearと売り上げ高の2項目をIndexにもとづいて表示します。Variable、Indexなどはできているものとします。 このようなイメージです。 YEAR SALES 2007  1000 2008  2000 2009  2500 2010  3000 Dim strYear as string Dim intSales as integer Dim intFill as integer Dim strDisplay as String For intFill = 0 To 3 Me.lstBoxTotalYear.Items.Add(strYear(intFill)) これをつかうと、YearしかMe.lstBoxTotal...に入れられませんでした。2個いれたらErrorになりました。一方では、strDisplayをつくってYearとSalesをつなげて strDisplay = strYear & intSales.ToStringをつくったのですがこれもはねられました。 YearとSalesを2個いれるにはどうしたらいいでしょうか。或いは、他のCommandなどがありますでしょうか。Internetや他の本をみてもみつかりませんでした。 よろしくお願いいたします。

  • VB2010でのコントロール多次元配列について

    教えてください。 実行中にコントロールを生成したいのですが、 Public Class Form1  Private myTxt(,) As System.Windows.Forms.TextBox  Me.myTxt = New System.Windows.Forms.TextBox(59, 2) {}  Dim i As Integer  Dim j As Integer  Dim h As Integer  Dim p As Integer  h = 10  p = 100  For i = 0 To Me.myTxt.GetLength(0) - 1   For j = 0 To Me.myTxt.GetLength(1) - 1    Me.myTxt(i, j) = New System.Windows.Forms.TextBox    Me.myTxt(i, j).Name = "myTxt" + i.ToString() + j.ToString()    Me.myTxt(i, j).Size = New Size(100, 30)    Me.myTxt(i, j).Location = New Point(p, h)    p = p + 100   Next j   h = h + 30  Next i  Me.myPnl.Controls.AddRange(Me.myTxt) と書くと最後の行が波線になり、 “型 'System.Windows.Forms.TextBox の 2 次元配列' の値を 'System.Windows.Forms.Control' に変換できません。”とエラーになります。 これはAddRangeは多次元配列に使用できないということなのでしょうか? 色々検索してみましたが、コントロールの生成に関する多次元配列が見つけられずに 困っていました。 最後のAddRange(Me.myTxt)をAdd(Me.myTxt(i,j))などと変えたりしても別のエラーになり、 基本的に間違っている気がしますがどこだかがわかりません。 詳しい方、宜しくお願い致します。

  • キューとコンボボックスの使い方  VB2008

    VB2008を使っています。 キューとコンボボックスの使い方がわからないのですが、以下のソースで (1)キューとデータソースを使う。 Dim queue As Queue = New Queue(20) For i As Integer = 0 to 9 queue.Enqueue( i.ToString() ) Next i ComboBox1.DataSource = queue.ToArray ComboBox2.DataSource = queue.ToArray (2)べたな方法 ComboBox1.Items.Clear() For i As Integer = 0 to 9 ComboBox1.Items.Add( i.ToString() ) Next i ComboBox2.Items.Clear() For i As Integer = 0 to 9 ComboBox2.Items.Add( i.ToString() ) Next i ------------------------ (1) (1)と(2)は厳密にどのように違うのでしょうか? (2) (1)で心配なのは、キューの上限を20にしていて、実際使っているのは10個で後は空です。 この状態で、コンボボックスのDataSourceにセットした場合、(2)と同じように10件だけになっているのでしょうか? (3) (1)は同じキューを使いまわしています。コンボボックス1と2は独立して使えるのでしょうか?(データは同じです。)

専門家に質問してみよう