0

あるドロップダウンボックスから別のドロップダウンボックスに単純なフィルターを実装しようとしています。

最初のドロップダウンからアイテムを選択すると、2番目のドロップダウンボックスに(アイテムが)表示されません。何が欠けているのかわかりません。お知らせ下さい。

ascxコードは次のとおりです。

  <div id="SubmitSection" style="width:auto; height:auto;" class="SubmitSectionStyle">
        <div id="DropdownSection" style="text-align:center;">
        <asp:DropDownList ID="DropDown1" runat="server" AppendDataBoundItems="true"
               onselectedindexchanged="Type_SelectedIndexChanged" ToolTip="Select Category">
              <asp:ListItem Text="--Select Category--" Value="" />
              <asp:ListItem Value="1">Department</asp:ListItem>
              <asp:ListItem Value="2">Safety</asp:ListItem>
        </asp:DropDownList>&nbsp;

        <asp:DropDownList ID="DropDown2" runat="server">
        <asp:ListItem Text="--Select One--" Value="" />
        </asp:DropDownList>

      </div>

そして、これが私の背後にあるコードです:

protected void Type_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (DropDown1.SelectedValue == "1")
        {
            DropDown2.Items.Clear();
            DropDown2.Items.Add("DeptTest");
            DropDown2.DataBind();
        }
        else if (DropDown1.SelectedValue == "2")
        {
            DropDown2.Items.Clear();
            DropDown2.Items.Add("SafetyTest");
            DropDown2.DataBind();
        }
    }
4

3 に答える 3

1

最初のドロップダウンリストで、 AutoPostBack="True"を設定します。

于 2012-08-09T20:27:26.023 に答える
1

アイテムの変更時にページを更新する場合は、自動ポストバックを true に設定する必要があります。

<asp:DropDownList ID="DropDown1" AutoPostBack="True" runat="server" AppendDataBoundItems="true" onselectedindexchanged="Type_SelectedIndexChanged" ToolTip="Select Category" >
              <asp:ListItem Text="--Select Category--" Value="" />
              <asp:ListItem Value="1">Department</asp:ListItem>
              <asp:ListItem Value="2">Safety</asp:ListItem>
        </asp:DropDownList>

ユーザーが選択を変更するたびにページ全体を更新しないように、これらの DropDownList コントロールの両方を更新パネルにラップすることを検討することもできます。

于 2012-08-09T20:29:44.740 に答える
1
AutoPostBack = "true" // AutoPostBack attribute is missing in DropDown1 due to which the event does not fire

// change your dropdown1 code as
<asp:DropDownList ID="DropDown1" AutoPostBack = "true" runat="server" AppendDataBoundItems="true"
           onselectedindexchanged="Type_SelectedIndexChanged" ToolTip="Select Category">
          <asp:ListItem Text="--Select Category--" Value="" />
          <asp:ListItem Value="1">Department</asp:ListItem>
          <asp:ListItem Value="2">Safety</asp:ListItem>
    </asp:DropDownList>
于 2012-08-09T20:28:46.880 に答える