私は ASP.NET を初めて使用します。
国、州のドロップダウンリストを作成しています。
例: 特定の国について、キャッシュ ファイルからその国の州を読み取ります。
LOGIC :ユーザーが初めて訪問したとき、その時点でキャッシュは空になるため、対応する州が からフェッチされXMLFile
、その州がキャッシュに挿入されます。次にユーザーが同じ国を訪問するときは、州は からではなくキャッシュから取得する必要がありますXMLFile
。
ドロップダウンリストで必要な国の州を取得できません...
これが私のコードスニペットです。
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();
}
}
前もって感謝します !!