0

SQL クエリの結果から入力されたドロップダウン ボックスがあります。dropdownlist1 から選択された値が、lbAuthors ドロップダウン リストに正常に入力されます。テスト中に、dropdownlist1 の最初のレコードが lbAuthors ドロップダウンリストに更新されないことに気付きました。例を次に示します。2 番目のドロップダウン ボックスに 3 人の著者名 (Frost、Kipling、Poe) がある場合、最初の名前である Frost は最初のドロップダウン ボックスに反映されません。キプリングまたはポーはそうしますが、フロストはそうではありません。

私の質問は、Frost (または最初のレコードが何であれ) が最初のドロップダウン ボックスに更新されるようにするには、イベントに何を含める必要があるかということです。–</p>

分離コード:

protected void update_SelectedItem(object sender, EventArgs e)
{
    lbAuthorList.Items.Clear();
    lbAuthorList.Items.Add(new ListItem(DropDownList1.SelectedItem.Text, DropDownList1.SelectedItem.Text));
    lbAuthorList.Items.FindByValue(DropDownList1.SelectedItem.Text).Selected = true;
}

マークアップ:

<asp:DropDownList runat="server" 
                  ID="lbAuthors" 
                  style="float:left;" 
                  DataSourceID="odsAuthorList" 
                  DataTextField="DisplayAuthorName" DataValueField="AuthorID" 
                  onselectedindexchanged="lbUserList_SelectedIndexChanged" 
                  AppendDataBoundItems="True" >
</asp:DropDownList>
<asp:DropDownList ID="DropDownList1" 
                  runat="server" 
                  AppendDataBoundItems="True" 
                  DataSourceID="SqlDataSource2" 
                  DataTextField="Display_AuthorName"  
                  EnableViewState="false"
                  DataValueField="Display_AuthorName"                  
                  OnSelectedIndexChanged="update_SelectedItem" 
                  AutoPostBack="true">
</asp:DropDownList>
4

2 に答える 2

1

これは、最初のアイテムを選択しても、選択されたインデックスが変更されないためです。次のようなダミー項目を挿入する必要があります::

<asp:DropDownList ID="DropDownList1" runat="server" 
                  AppendDataBoundItems="True" 
                  DataSourceID="SqlDataSource2" 
                  DataTextField="Display_AuthorName"  
                  EnableViewState="false"
                  DataValueField="Display_AuthorName"  
                  OnSelectedIndexChanged="update_SelectedItem" 
                  AutoPostBack="true">
    <asp:ListItem Text="--Select One--" Value="-1"></asp:ListItem>
</asp:DropDownList>
于 2013-10-31T22:40:00.570 に答える
0

この問題は、ドロップダウンリストの変更のコードを書いたが、最初にその時点で選択された最初の値がドロップダウンリストの変更イベントが発生しなかったために発生します。2番目を選択してから最初のものを選択すると、正常に機能します。

ドロップダウンリスト項目にダミー変数を 1 つ追加するだけです。

dropdownlist1.Items.Add("--Select--");

于 2013-11-01T11:38:27.823 に答える