在C#中将新的下拉列表项值分配为NULL

时间:2013-02-11 03:42:32

标签: asp.net c#-4.0 drop-down-menu null webforms

我的asp.net网络表单中有一个下拉菜单ddlInstructorAllocated,它从数据库中获取列表中的所有项目。我已插入另一项要显示为“请选择教师”的项目,以便用户知道该怎么做。保存此表单时,它会填充输入到数据库的信息。与ddlInstructorAllocated对应的列不是必填字段,可以保留为NULL。我要做的是默认情况下选择“请选择教师”时,其值为NULL。我尝试了很多方法,但似乎无法弄明白。下面是我尝试的方式之一。请帮忙。对于从列表中选择教师的实例,将返回其ID,转换为字符串,然后保存到数据库中。

        private void DisplayInstructors()
    {
        ListItem li;
        li = new ListItem("Please Select Instructor");
        li.Value = null;
        ddlInstructorAllocated.Items.Add(li);

        var instructors = EmployeeRepository.GetInstructors();

        foreach (var i in instructors)
        {
            ddlInstructorAllocated.Items.Add(new ListItem(string.Format("{0} {1}", i.FirstName, i.LastName), i.EmployeeID.ToString()));
        }
    }

数据库中的ID存储为int,稍后我正在进行EmployeeID = int.Parse(ddlInstructorAllocated.SelectedValue),我收到的输入字符串格式不正确的异常

2 个答案:

答案 0 :(得分:2)

int id;
EmployeeID = int.TryParse(ddlInstructorAllocated.SelectedValue, out id)
                   ? id 
                   : (int?)null;

TryParse尝试将值解析为int,如果可以成功转换,则指定值。如果不是,则指定空值。

答案 1 :(得分:-1)

尝试在下拉列表的索引0处放置您的“请选择讲师”。选择索引零时。而不是放置null。你可以在这里做一些事情:

  1. 放置类似n / a或空字符串的内容。
  2. 如果你真的想要null,请尝试使用dbnull或创建你的属性nullable。
  3. 这让我感到很伤心。