0

私のサイトでは、ユーザーがログインすると、詳細を編集できる Editmyaccount のようなオプションが表示されます。ユーザーが州を選択しましたが、他の国や州も一緒に表示したいのですが、どうすればよいですか?

            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

ジェネリッククラスを使用してすべてを取得し、セッションから値を追加してからドロップダウンリストにバインドできない理由を簡単に説明すると、次のようなことができます。

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 に答える
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 に答える