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

2 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();

   ...
}      
Run Code Online (Sandbox Code Playgroud)

Tan*_*dar 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();
    }
}
Run Code Online (Sandbox Code Playgroud)