- PR -

asp.netのコントロールの配列の使い方を教えてください。

1
投稿者投稿内容
yyy wei
会議室デビュー日: 2005/06/10
投稿数: 5
投稿日時: 2005-06-10 20:12
初めて書きます。
現在開発でasp.netの勉強中なのですが、コントロールの配列を使うとブラウザで表示するときエラーになります。


問題の部分は下で
Dim ar(3) As RadioButtonList
For i As Integer = 0 To 6
dr.Read()
ar(i).Items.Add(New ListItem(dr("A"), dr("Qid")))



全体のソースはこちらです。上の部分がなければ問題ありませんでした。よろしくお願いします。




Imports System.Data.SqlClient
Imports System.Data
Public Class Qradio3
Inherits System.Web.UI.Page


Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not IsPostBack Then
Dim ar(3) As RadioButtonList
//配列宣言
Dim cn As New SqlConnection("Data Source=(local); Initial Catalog = Northwind;Integrated Security=SSPI;")
' ページを初期化するユーザー コードをここに挿入します。
Dim cmd As New SqlCommand("SELECT * FROM Qn", cn)
cn.Open()
Dim dr As SqlDataReader = cmd.ExecuteReader()
For i As Integer = 0 To 6
dr.Read()
ListBox1.Items.Add(dr("A"))
ListBox1.Items.Add(dr("Qid"))
ar(i).Items.Add(New ListItem(dr("A"), dr("Qid")))
ar(i).Items.Add(New ListItem(dr("A"), dr("Qid")))

Next
dr.Close()
cn.Close()
End If
End Sub

End Class


Next

[ メッセージ編集済み 編集者: yyy wei 編集日時 2005-06-23 15:54 ]
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2005-06-10 20:27
エラーがでるのなら、エラーの内容を書きましょう。
おそらくRadioButtonListのインスタンスを生成してないからです。
とりあえず、初心者向けの本を購入することをおすすめします。。。

cobalt
会議室デビュー日: 2005/05/02
投稿数: 14
投稿日時: 2005-06-10 21:19
そしてその後、ArgumentOutOfRangeException というエラーが出ましたけどどうすれば良いでしょうという質問が来る訳ですね
yyy wei
会議室デビュー日: 2005/06/10
投稿数: 5
投稿日時: 2005-06-10 21:34
返信ありがとうございます。
エラーメッセージは

[NullReferenceException: オブジェクト参照がオブジェクト インスタンスに設定されていません。]
WebApplication1.Qradio3.Page_Load(Object sender, EventArgs e) +378
System.Web.UI.Control.OnLoad(EventArgs e)
System.Web.UI.Control.LoadRecursive()
System.Web.UI.Page.ProcessRequestMain()

です。

あれから インスタンスを生成するために、いろいろ試行錯誤したのですが、やっぱりできませんでした。

RadioButtonListのクラスライブラリーを見ても、理解できませんでした。
どのようにすればいいのでしょうか?


burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2005-06-10 23:38
引用:

あれから インスタンスを生成するために、いろいろ試行錯誤したのですが、やっぱりできませんでした。



どのように試行錯誤したかを書きましょう。必要であれば最小限のソースを書くと解答しやすいです。
まぁ、インスタンスを生成すればすむことなんですけど。。。
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2005-06-11 01:59
引用:

yyy weiさんの書き込み (2005-06-10 21:34) より:

あれから インスタンスを生成するために、いろいろ試行錯誤したのですが、やっぱりできませんでした。





まぁ、インスタンス生成をするための構文を理解しましょう。
と言うことで、対象となる言語のリファレンスでも読んだらどうですか?

_________________
「伝える」とは「人に云う」と書く。
http://d.hatena.ne.jp/NAL-6295/
yyy wei
会議室デビュー日: 2005/06/10
投稿数: 5
投稿日時: 2005-06-17 10:30
返事が遅くなりました。

やはりインスタンス生成が問題だったようです。
コントロール配列を作ればできるとだけ思ってて、
for文の中でRadioButtonListのインスタンスを作ってIDを指定して識別する方法は思いつきませんでした。というかコントロールのインスタンスを作る発想がなかった。「ASP.NET ラーニングマスター」という入門書を買い、やっとわかりました。いままで持っていた「ASP.NETでいってみよう」はわかりやすいけど、私には敷居が高く基本的な理解ができませんでした。
みなさん皆さんご指摘ありがとうございました。
最終的にしたのコードになって、アンケートファームが完成しました。


Dim myradiolist As RadioButtonList
For i As Integer = 0 To Maxid - 1
myradiolist = New RadioButtonList
Dim s As Integer = i
While (s <= i + Dis(Qid_Stock(i)) - 2)
dr.Read()
With myradiolist
.ID = i.ToString
.Items.Add(dr("A"))

End With

s = s + 1

End While
Next i
1

スキルアップ/キャリアアップ(JOB@IT)