Я думаю, что это вопрос жизненного цикла страницы asp.net, но, тем не менее, я не могу понять это.
У меня есть выпадающий список на панели обновлений, в котором перечислены пользователи, а затем показаны подробности под ним (обновить или удалить). Когда я нажимаю «удалить», код, идущий сзади, очищает ddl (чтобы удалить удаленного пользователя), а затем повторно связывает его. Все хорошо. Где-то между концом кода и когда страница обновляется, она снова добавляет список.
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DropDownList1.AppendDataBoundItems = true;
DropDownList1.Items.Insert(0, new ListItem("Select a User", "select"));
DropDownList1.SelectedValue = "select";
DropDownList1.DataSourceID = "srcUsers";
DropDownList1.DataBind();
}
}
protected void btnDelete_Click(object sender, EventArgs e)
{
DropDownList1.AppendDataBoundItems = false;
DropDownList1.DataSourceID = "srcUsers";
DropDownList1.DataBind();
DropDownList1.AppendDataBoundItems = true;
DropDownList1.Items.Insert(0, new ListItem("Select a User", "select"));
DropDownList1.SelectedValue = "select";
}//at this point, the quick watch shows the correct count for the ddl
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:DropDownList ID="DropDownList1" Width="150" runat="server" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" AutoPostBack="true">
</asp:DropDownList>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="DropDownList1" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
Примечание: srcUsers
является источником данных объекта
Если я удаляю код привязки ddl из кнопки, то он вообще не обновляет ddl (при этом он делает это дважды!)
Где это связывает второй раз? Почему это не является обязательным, если я удалю код кнопки? Почему я не могу пройти через это в VS?