0

在我的网站中,当用户登录时,他将拥有像 Editmyaccount 这样的选项,他可以在其中编辑详细信息。这里我显示他在 DB 的注册页面中输入的值,我有两个 DDL,我正在显示适当的国家和用户选择的州,但我想显示其他一些国家和州,我该怎么做?

            DropDownList1.DataSource = ProfileMasterDAL.bind();
            DropDownList1.DataBind();
            DropDownList1.Items.Insert(0, "--Select country--");
            DropDownList1.SelectedIndex = 0;

实际上我正在使用会话从其他页面获取 DDL

  DropDownList1.Items.Add(new ListItem(Session["country"].ToString()));
           DropDownList2.Items.Add(new ListItem(Session["state"].ToString()));
4

2 回答 2

0

如果您已经将国家/州列表绑定到 DropDownList,则可以将两个列表的选定值绑定到会话中存储的值。例如,如果您所在的国家 DropDownList 看起来像这样:

<asp:DropDownList ID="DropDownList1" runat="server">
    <asp:ListItem>Please Select</asp:ListItem>
    <asp:ListItem>Australia</asp:ListItem>
    <asp:ListItem>USA</asp:ListItem>
    <asp:ListItem>United Kingdom</asp:ListItem>
    <asp:ListItem>Spain</asp:ListItem>
</asp:DropDownList>

您可以使用以下代码选择会话中指定的适当国家/地区:

 DropDownList1.SelectedValue = Session["country"].ToString()

这样,您就不需要以编程方式添加额外的项目。

于 2012-08-24T05:18:35.093 回答
0

只是一个快速的建议,为什么你不能使用泛型类检索所有内容,然后在将会话绑定到下拉列表之前添加会话中的值,然后你可以执行类似的操作

var distinctStatelist
    = list.GroupBy(
        i => i.state,
        (key, group) => group.First()
    ).ToList();

这将为您提供不同的状态列表,然后您可以确保没有重复项并将其绑定到您的下拉列表。

或者

如果您已经在下拉列表中拥有该项目,那么您可以执行此操作

DropDownList i = default(DropDownList);
ListItem li = i.Items.FindByText("");
i.Items.Remove(li);
li.Selected = true;
i.Items.Add(li);
于 2012-08-24T09:59:09.503 回答