簡體   English   中英

訪問動態RadioButtonList數組對象

[英]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事件時,您都在重新聲明RBLPainLabella數組。 同樣,當執行離開處理程序時,變量將超出范圍,因此您將無法在其他函數中使用它們,也無法使用在處理程序中從一個調用到下一個調用的更改。 我不知道您的其余代碼在做什么,但是盡管看似不必要的數組,但執行應該在您的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM