DropDownList项目在每次回发后都会重复其值

时间:2019-06-12 12:07:44

标签: c# asp.net webforms

在绑定后,下拉列表显示以下值:

  • 第一优先级低
  • 第二优先级中等
  • 第三优先级高

下拉列表在每次回发后显示以下值:

  • 第一优先级低
  • 第二优先级中
  • 第三优先级高
  • 第一优先级低
  • 第二优先级中
  • 第三优先级高

代码如下:

protected void Page_Load(object sender, EventArgs e)
{
   DropDownList1.DataSource = db.ComplaintTypes.ToList();
   DropDownList1.DataTextField = "ct_Name";
   DropDownList1.DataBind();

   cboCpriority.DataSource = db.ComplaintPriorities.ToList();
   cboCpriority.DataTextField = "cp_Desc";
   cboCpriority.DataBind();

   ...
}      

1 个答案:

答案 0 :(得分:5)

您应该使用IsPostBack属性仅在首次加载时绑定,因为在此之后,值将通过视图状态保留。

protected void Page_Load(object sender, EventArgs e)
{
    if(!IsPostBack)
    {
        DropDownList1.DataSource = db.ComplaintTypes.ToList();
        DropDownList1.DataTextField = "ct_Name";
        DropDownList1.DataBind();

        cboCpriority.DataSource = db.ComplaintPriorities.ToList();
        cboCpriority.DataTextField = "cp_Desc";
        cboCpriority.DataBind();
    }
}