我正在设计一个Job Portal。我有母版页,在母版页中,我使用了选择国家/地区下拉列表。
我正在所有内容页中根据用户所选国家/地区显示工作。
我只是希望用户只选择一个国家/地区,并在所有内容页面中保持选中状态。我不希望他在每个内容页面上反复选择。
除非用户再次更改,否则我只想保留下拉列表选定值直到导航到网站。
答案 0 :(得分:1)
您可以使用Session来存储DropDownList的值
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
<asp:ListItem Text="Netherlands" Value="nl-NL"></asp:ListItem>
<asp:ListItem Text="England" Value="en-GB"></asp:ListItem>
<asp:ListItem Text="Germany" Value="de-DE"></asp:ListItem>
</asp:DropDownList>
代码隐藏,在每个页面加载时设置下拉列表的正确值。现在,您可以使用Session["language"]
的值来过滤数据。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//check if the session exists and select the correct value in the dropdownlist
if (Session["language"] != null)
{
DropDownList1.SelectedValue = Session["language"].ToString();
}
else
{
//set the session with the default language
Session["language"] = "en-GB";
}
}
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
//set the session based on the dropdownlist value
Session["language"] = DropDownList1.SelectedValue;
}
答案 1 :(得分:0)
这取决于您对母版页和内容页的实施,但其中一个是使用cookie或用户配置文件来保存用户对国家/地区选择的偏好。然后,您的母版页可以读取此数据(来自Cookie或配置文件)以显示选择。
最后,我认为您希望在导航期间的所有页面都可以访问的位置保留用户选择。母版页和内容页只是阅读此信息的一种机制。