下拉列表回发到默认选定值?

use*_*103 2 c# asp.net drop-down-menu

当我在下拉列表中选择一个值时,我得到一个回发,即使在回发后也选择了我选择的值.如何在回发后再次获取默认值< - 选择城市 - >作为选定值?

HTML:

<asp:DropDownList ID="ddlCity" Width="200px" runat="server" AutoPostBack="true"
 OnSelectedIndexChanged="ddlCity_SelectedIndexChanged"> </asp:DropDownList>
Run Code Online (Sandbox Code Playgroud)

标记:

protected void Page_Load(object sender, EventArgs e)
{
    DataTable CityMembersTable = GetCity();
    ddlCity.DataSource = CityMembersTable;
    ddlCity.DataTextField = "CityName";
    ddlCity.DataValueField = "CityID";
    ddlCity.DataBind();

    ddlCity.Items.Insert(0, new ListItem("<--Choose City-->", ""));
}

protected void ddlCity_SelectedIndexChanged(object sender, EventArgs e)
{
    if (ddlCity.SelectedValue == "")
    {
        return;
    }

    ddlCity.SelectedValue == "0"; //Dose not work...
}
Run Code Online (Sandbox Code Playgroud)

Ama*_*ure 6

您需要首先处理IsPostBack页面加载,因为您在页面加载时绑定下拉列表.此外,如果您的if条件执行,ddlCity.SelectedValue == "0";将不会执行.

 protected void Page_Load(object sender, EventArgs e)
 {
      if(Page.IsPostBack == false)
      {
         DataTable CityMembersTable = GetCity();
         ddlCity.DataSource = CityMembersTable;
         ddlCity.DataTextField = "CityName";
         ddlCity.DataValueField = "CityID";
         ddlCity.DataBind();

         ddlCity.Items.Insert(0, new ListItem("<--Choose City-->", ""));
      }
 }


 protected void ddlCity_SelectedIndexChanged(object sender, EventArgs e)
 {
    ddlCity.SelectedIndex = 0; //Put this here
    if (ddlCity.SelectedValue == "")
    {
        return;
    }
 }
Run Code Online (Sandbox Code Playgroud)