Reputation: 425
When I select a value in the dropdownlist I get a postback and the value I selected is selected even after the postback. How do I get the default value, <--Choose City--> as selected value again after the postback?
HTML:
<asp:DropDownList ID="ddlCity" Width="200px" runat="server" AutoPostBack="true"
OnSelectedIndexChanged="ddlCity_SelectedIndexChanged"> </asp:DropDownList>
Markup:
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...
}
Upvotes: 2
Views: 24281
Reputation: 9680
You need to handle IsPostBack
on page load first, because you are binding dropdown on page load. Also if your if
condition executes, ddlCity.SelectedValue == "0";
will not execute.
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;
}
}
Upvotes: 6
Reputation: 761
Try to use SelectedIndex = 0
instead of SelectedValue. You've added the value at position 0 after binding the data.
It's also better to add an extra check in the Page_Load if the Request is a PostBack before binding the datasource:
if (!Page.IsPostBack)
{
//bind data
}
Upvotes: 2
Reputation: 4612
If that is your exact code you are comparing ddl.SelectedValue against "0". Instead you want to use the assign operator, = not ==.
If it still doesn't work. Try ddlCity.SelectedIndex = 0;
Upvotes: 0