我正在尝试使用保存到会话中的值在 Page_Load 上设置 DropDownList 的选定值 变量。已填充 DropDownList ,并将值与会话中的其他信息一起存储。我正在创建一个编辑条目页面,并希望所有字段都填充了会话中的信息。
我所做的是使用会话变量填充 TextBox ,但对于Advisors部分,我需要用户输入数字而不是名称。所以我需要使用 DropDownList 来确保准确输入信息。我已经研究了数据绑定,数据绑定,使用数据源等方法,但似乎所有这些 DropDownLists 都是动态生成的。任何帮助将不胜感激。
我的.aspx代码:
<asp:TextBox runat="server" ID="fname" MaxLength="100"></asp:TextBox>
<asp:DropDownList ID="advisors" runat="server">
<asp:ListItem Value="">Select Advisor</asp:ListItem>
<asp:ListItem Value="2">Joe Schmo</asp:ListItem>
</asp:DropDownList>
代码背后:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
fname.Text = Session["fname"].ToString();
lname.Text = Session["lname"].ToString();
sex.Text = Session["sex"].ToString();
sid.Text = Session["sid"].ToString();
email.Text = Session["email"].ToString();
phone.Text = Session["phone"].ToString();
advisors.SelectedValue = Session["advisor"].ToString();
}
}
更新:
所以我很蠢。 Session变量存储名称“Joe Schmo”而不是值“2”。以下代码对我有用。
foreach (ListItem listItem in advisors.Items)
{
listItem.Selected = listItem.Text.Equals(Session["advisor"].ToString());
}
答案 0 :(得分:0)
试试这个
foreach (ListItem listItem in advisors.Items)
{
if(listItem.Text.Equals(Session["advisor"].ToString())
DropDownList1.Items.FindByValue(Session["advisor"].ToString()).Selected = true;
}