我有两个下拉列表,并且该下拉列表通过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"));
时出现错误,这是错误屏幕截图
所以请给我建议一些想法... ?????
答案 0 :(得分:0)
问题很可能来自第31行中的int.Parse(DropDownList1.SelectedValue)
,其中DropDownList1.SelectedValue
的格式可能不正确,也无法解析。
为什么错误来自第32行(如屏幕截图所示)是因为直到由于延迟执行才执行了foreach循环后才执行第31行(var dd = d.TblLabelMasters.Where(a => a.Cid == int.Parse(DropDownList1.SelectedValue));
)。
希望有帮助。