SelectedItem的未将对象引用设置到对象的实例错误

2010-08-28 10:49:01来源:西部e网作者:

今天测试同事写的一个程序,在没有选中ListBox值的时候,判断SelectedItem.Text是否为空,总是报错“服务器错误,未将对象引用设置到对象的实例”。一般这种问题的原因都是控件的值为空,调用时出现异常。

他的代码是这样写的:

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  }

乍看起来没什么错误,但是一旦没有选择ListBox的值,就会报错。原因很简单,就是因为 ListBox_DeviceCell.SelectedItem.Text 是空值所以报错,但是应该怎么样判断出来 ListBox_DeviceCell.SelectedItem.Text 是空值呢?

正确的方法应该是:

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  }


就可以了。

关键词:ASP.NET

赞助商链接: