下拉列表不需要国家下拉



我有三个下拉框分别表示国家、州和城市。但我只想要州和国家下拉列表。因为国家只有一个。所以不需要国家下拉列表。我试过了,但是有些类会出错。请帮助。参考代码

var countries = _careerHelper.GetCountries();
countries.Insert(0, "--Select--");
ddlCountry.DataSource = countries;
ddlCountry.DataBind();
var states = _careerHelper.GetStates(ddlCountry.SelectedValue);
states.Insert(0, "--Select--");
ddlState.DataSource = states;
ddlState.DataBind();
var cities = _careerHelper.GetLocations(ddlCountry.SelectedValue, ddlState.SelectedValue);
cities.Insert(0, "--Select--");
ddlCity.DataSource = cities;
ddlCity.DataBind();

_careerhelper类代码如下:

public List<string> GetCountries()
{
    return _rblDataContext.Locations
                          .Select(m => m.CountryName)
                          .Distinct()
                          .ToList();
}
public List<string> GetStates(string country)
{
    if (country == "")
    {
        return null;
    }
    else
    {
        return _rblDataContext.Locations
                              .Where(m => m.CountryName.ToLower() == country
                              .ToLower())
                              .Select(m => m.StateName)
                              .Distinct()
                              .ToList();
        }
    }
}

让我知道如何删除国家下拉框,这样我就可以管理州和城市下拉框。请帮助

问题:

在这里你使用国家下拉传递选定的国家作为参数。

var states = _careerHelper.GetStates(ddlCountry.SelectedValue);

解决方案1:

SpaceBison建议手动设置国家名称并将其传递给GetStates

string country = "Country Name";
var states = _careerHelper.GetStates(country);

同样的事情你将不得不做的Cities以及:

var cities = _careerHelper.GetLocations(country, ddlState.SelectedValue);

解决方案2:

另一个解决方案是在下拉菜单中设置默认值,然后让一切保持原样。

选择国家并禁用下拉菜单,以便用户无法选择。

ddlCountry.Items.FindByText("India").Selected = true;
ddlCountry.Enabled = false;

完整代码解决方案:

//populate countries
var countries = _careerHelper.GetCountries();
countries.Insert(0, "--Select--");
ddlCountry.DataSource = countries;
ddlCountry.DataBind();
//select default country
ddlCountry.Items.FindByText("India").Selected = true;
ddlCountry.Enabled = false;
//populate states
var states = _careerHelper.GetStates(ddlCountry.SelectedValue);
states.Insert(0, "--Select--");
ddlState.DataSource = states;
ddlState.DataBind();
//populate cities
var cities = _careerHelper.GetLocations(ddlCountry.SelectedValue, ddlState.SelectedValue);
cities.Insert(0, "--Select--");
ddlCity.DataSource = cities;
ddlCity.DataBind();

相关内容

最新更新