SelectedItem的未將對(duì)象引用設(shè)置到對(duì)象的實(shí)例錯(cuò)誤

2010-08-28 10:49:01來(lái)源:西部e網(wǎng)作者:

今天測(cè)試同事寫(xiě)的一個(gè)程序,在沒(méi)有選中ListBox值的時(shí)候,判斷SelectedItem.Text是否為空,總是報(bào)錯(cuò)“服務(wù)器錯(cuò)誤,未將對(duì)象引用設(shè)置到對(duì)象的實(shí)例”。一般這種問(wèn)題的原因都是控件的值為空,調(diào)用時(shí)出現(xiàn)異常。

他的代碼是這樣寫(xiě)的:

501  private void btn_Ok_Click(object sender, System.EventArgs e) {
502   if (ListBox_DeviceCell.Items.Count > 0) {
503    if (ListBox_DeviceCell.SelectedItem.Text != string.Empty)
504    {
505     textDeviceCell.Text = ListBox_DeviceCell.SelectedItem.Text;
506     Hidden_Dev_Kind_ID.Value = ListBox_DeviceCell.SelectedValue.ToString();
507     Panel_RecordInfo.Visible = false;
508    }
509   }
510  }

乍看起來(lái)沒(méi)什么錯(cuò)誤,但是一旦沒(méi)有選擇ListBox的值,就會(huì)報(bào)錯(cuò)。原因很簡(jiǎn)單,就是因?yàn)?ListBox_DeviceCell.SelectedItem.Text 是空值所以報(bào)錯(cuò),但是應(yīng)該怎么樣判斷出來(lái) ListBox_DeviceCell.SelectedItem.Text 是空值呢?

正確的方法應(yīng)該是:

501  private void btn_Ok_Click(object sender, System.EventArgs e) {
502   if (ListBox_DeviceCell.Items.Count > 0) {
503    if (ListBox_DeviceCell.SelectedItem != null)
504    {
505     textDeviceCell.Text = ListBox_DeviceCell.SelectedItem.Text;
506     Hidden_Dev_Kind_ID.Value = ListBox_DeviceCell.SelectedValue.ToString();
507     Panel_RecordInfo.Visible = false;
508    }
509   }
510  }


就可以了。

關(guān)鍵詞:ASP.NET

贊助商鏈接: