[英]Accessing a dynamic RadioButtonList array object
我已經創建了RadioButtonList類的數組,但顯然似乎無法訪問它或使用從中檢索到的答案。 我總是得到異常:對象引用未設置為對象的實例
static int jimmy = 0;
protected void Button5_Click(object sender, EventArgs e)
{
int sizeOfPain = GlobalVariables.sympLCWR1Pain.Count;
RadioButtonList[] RBLPain = new RadioButtonList[sizeOfPain];
Label1.Visible = false;
RadioButtonList1.Visible = false;
Label[] Labella = new Label[sizeOfPain];
if (jimmy < sizeOfPain)
{
Labella[jimmy] = new Label();
RBLPain[jimmy] = new RadioButtonList();
Labella[jimmy].Text = GlobalVariables.sympLCWR1Pain[jimmy];
RBLPain[jimmy].Items.Add("Yes");
RBLPain[jimmy].Items.Add("No");
Panel1.Controls.Add(Labella[jimmy]);
Panel1.Controls.Add(RBLPain[jimmy]);
if (RBLPain[jimmy].SelectedIndex == 0)
{
GlobalVariables.sympLCWR1Yes.Add(GlobalVariables.sympLCWR1Pain[jimmy]);
}
}
else
{
Label2.Text = "YOUS DONE!";
Label3.Text = GlobalVariables.sympLCWR1Yes[0];
Button5.Visible = false;
}
jimmy++;
}
我在if條件下得到了例外。 任何幫助,將不勝感激,謝謝:)
該錯誤意味着您正在嘗試訪問尚未實例化的內容。 在更新的代碼中,我看到您的click事件處理程序中包含以下內容:
RadioButtonList[] RBLPain = new RadioButtonList[sizeOfPain];
Label[] Labella = new Label[sizeOfPain];
這意味着每次處理click事件時,您都在重新聲明RBLPain
和Labella
數組。 同樣,當執行離開處理程序時,變量將超出范圍,因此您將無法在其他函數中使用它們,也無法使用在處理程序中從一個調用到下一個調用的更改。 我不知道您的其余代碼在做什么,但是盡管看似不必要的數組,但執行應該在您的click事件中保留下來。
在您的原始帖子中,您試圖訪問RBLPain[jimmy]
的SelectedItem.Text
屬性。 在此修訂版中,您正在檢查SelectedIndex
。 當SelectedIndex
為-1時, SelectedItem
將為null,這可能導致您原來的問題。 不管表單上有什么更改,因為您在每次click事件期間都創建了一個新的RadioButtonList
,所以您無法使用表單中的值-從我所看到的內容中, SelectedIndex
始終為-1。
我不明白為什么要檢查條件。如果在buttonclick上創建rbl,則始終應選擇第一項。 無論如何都使用RBLPain[jimmy].SelectedIndex=0;
如果條件之前。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.