我有一个下拉列表,在页面加载时填充,如下所示:
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保持启用状态,以便根据用户选择更改信息。
由于
答案 0 :(得分:10)
您需要将该代码放在!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。
答案 1 :(得分:4)
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();
}
}