只向下拉列表中添加一次项目

本文关键字:一次 项目 下拉列表 添加 | 更新日期: 2023-09-27 18:26:01

我有一个下拉列表,在页面加载时填充,如下所示:

protected void Page_Load(object sender, EventArgs e)
{
        ddlCars.Items.Add("Ford");
        ddlCars.Items.Add("Chevy");
        ddlCars.Items.Add("BMW");
        ddlCars.Items.Add("Jeep");
        ddlCars.Items.Add("Nissan");
}

它工作得很好,但当用户更改下拉列表的选择时,列表会被重新填充,我会看到两次相同的项目,因为页面正在重新加载,并且这些值正在重新添加。

阻止这种情况发生的最好方法是什么?重要的是,AutoPostBack保持启用状态,以便根据用户选择更改信息。

感谢

只向下拉列表中添加一次项目

您需要将该代码放入!Page.IsPostBack块中。

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack)
    {
        ddlCars.Items.Add("Ford"); 
        ddlCars.Items.Add("Chevy"); 
        ddlCars.Items.Add("BMW"); 
        ddlCars.Items.Add("Jeep"); 
        ddlCars.Items.Add("Nissan"); 
    }
}

这将允许该代码运行一次(当页面第一次加载时),然后每当页面由于用户交互等原因发布回服务器时就会被忽略。

有关详细信息,请参阅MSDN上的Page.IsPostBack。

protected void Page_Load(object sender, EventArgs e)
{
        if (!IsPostBack) {        
        ddlCars.Items.Add("Ford");
        ddlCars.Items.Add("Chevy");
        ddlCars.Items.Add("BMW");
        ddlCars.Items.Add("Jeep");
        ddlCars.Items.Add("Nissan");
        //ddlCars.datasource=?
        //ddlCars.databind();
        }
}