DropDownList错误输入字符串的格式不正确

时间:2018-07-09 06:11:41

标签: c# asp.net .net

我有两个下拉列表,并且该下拉列表通过LINQ与数据库绑定。并且我在0索引处添加dropdownlist值是一个字符串,它首先出现在屏幕上,但是如果任何用户错误地选择了此字符串,他们将得到一个错误,该错误显示在错误屏幕快照中,因此如何绕过此错误。  这是代码

protected void Page_Load(object sender, EventArgs e)
    {
       if(!IsPostBack)
        { 

            DropDownList1.Items.Insert(0, new ListItem("Select Course"));
            DataClassesDataContext d = new DataClassesDataContext();
            var dd = d.TblCourseMasters.OrderBy(a => a.Name);
            foreach (var item in dd)
            {
                DropDownList1.Items.Insert(1, new ListItem(item.Name, item.Id.ToString()));
            }
        }

    }

    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        DropDownList2.Items.Clear();
        DropDownList2.Items.Insert(0, new ListItem("Select Label"));
        DataClassesDataContext d = new DataClassesDataContext();
        var dd = d.TblLabelMasters.Where(a => a.Cid == int.Parse(DropDownList1.SelectedValue));
        foreach (var item in dd)
        {
            DropDownList2.Items.Insert(1, new ListItem(item.LabelName, item.Id.ToString()));
        }
    }

当我选择字符串值DropDownList1.Items.Insert(0, new ListItem("Select Course"));DropDownList2.Items.Insert(0, new ListItem("Select Label"));时出现错误,这是错误屏幕截图 error screenshot

这是 UI屏幕截图 UI screenshot

所以请给我建议一些想法... ?????

1 个答案:

答案 0 :(得分:0)

问题很可能来自第31行中的int.Parse(DropDownList1.SelectedValue),其中DropDownList1.SelectedValue的格式可能不正确,也无法解析。

为什么错误来自第32行(如屏幕截图所示)是因为直到由于延迟执行才执行了foreach循环后才执行第31行(var dd = d.TblLabelMasters.Where(a => a.Cid == int.Parse(DropDownList1.SelectedValue));)。

希望有帮助。