1

我的 asp.net Web 表单中有一个下拉菜单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)稍后会这样做,我收到输入字符串格式不正确的异常

4

2 回答 2

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

TryParse 尝试将值解析为 int,如果您可以成功转换,则您正在分配该值。如果不是,则分配空值。

于 2013-02-11T03:50:20.287 回答
-1

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

  1. 放置类似 n/a 或空字符串的内容。
  2. 如果您真的想为空,请尝试使用 dbnull 或创建您的属性可为空。

我认为这对我有帮助。

于 2013-02-11T03:53:27.890 回答