【发布时间】:2012-04-20 20:19:57
【问题描述】:
我是 ASP.NET 的新手,
我正在制作国家,州下拉列表。
例如:对于特定国家/地区,我将从缓存文件中读取该国家/地区的状态。
LOGIC : 当用户第一次访问时,此时缓存为空,因此将从XMLFile获取相应的状态并将其状态插入缓存中,下一步用户访问同一个国家的时间,因此它的状态应该从缓存中获取,而不是从XMLFile。
我无法在我的下拉列表中获取所需国家/地区的状态...
这是我的代码 sn-p,
protected void DropDownListCountry_SelectedIndexChanged(object sender, EventArgs e)
{
string SelectedCountry = DropDownListCountry.SelectedItem.Text;
XDocument doc = XDocument.Load(Server.MapPath("XMLFile.xml"));
var query = from country in doc.Descendants("country")
where country.Attribute("name").Value == SelectedCountry
select new
{
states = from state in country.Elements("state")
select new{
Name = state.Attribute("name").Value
}
};
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("Name"));
if (Cache["key"]==null)
{
foreach (var st in query)
{
foreach (var StateName in st.states)
{
DataRow dr = dt.NewRow();
dr["Name"] = StateName.Name;
dt.Rows.Add(dr);
Cache.Insert("key", dr);
}
}
DropDownListState.DataSource = dt;
DropDownListState.DataTextField = "Name";
DropDownListState.DataBind();
}
else
{
object obj = Cache["key"];
dt.Rows.Add(obj);
DropDownListState.DataSource = dt;
DropDownListState.DataTextField = "Name";
DropDownListState.DataBind();
}
}
提前致谢!
【问题讨论】:
标签: asp.net xml caching drop-down-menu bind