0

ドロップダウンから値を取得して TextBox に戻す方法は? 以下は動作しません。ただし、リストから項目を選択できます。

<body>
<form id="form1" runat="server">
<script type="text/javascript">
    function pageLoad() {
        //Same Width
        $get('ListBox1').style.width = $get('TextBox1').clientWidth;
    }
</script>
<ajax:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</ajax:ToolkitScriptManager>
<div>
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <ajax:DropDownExtender ID="TextBox1_DropDownExtender" DropDownControlID="ListBox1"
        runat="server" DynamicServicePath="" Enabled="True" TargetControlID="TextBox1"
        HighlightBackColor="WhiteSmoke">
    </ajax:DropDownExtender>
</div>
<asp:ListBox ID="ListBox1" runat="server" AutoPostBack="True">
    <asp:ListItem>Item 1</asp:ListItem>
    <asp:ListItem>Item 2</asp:ListItem>
    <asp:ListItem>Item 3</asp:ListItem>
</asp:ListBox>
</form>

4

2 に答える 2

2

onchangeイベントをListItemに接続して、選択されたアイテムからテキストを取得するJavaScriptメソッドを呼び出す必要があります。JavaScriptコードは次のようになります(テストされていません)。

    function setOptionText()
    {
       var ddl = $get('ListBox1');
       var index = ddl.selectedIndex

       $get('TextBox1').value = ddl.options[index].value;
    }

次に、それに応じてListBoxコントロールを接続します。JavaScriptがテキストの設定を処理しているため、AutoPostBackオプションは不要になっていることに注意してください。

<asp:ListBox ID="ListBox1" runat="server" onchange="return setOptionText()">
于 2011-03-02T18:08:19.867 に答える
1

ListBox の SelectedIndexChanged イベントのハンドラーを追加すると、選択した項目のテキストを TextBox に入れることができます。

マークアップ:

<div>
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>    
    <ajaxtoolkit:dropdownextender id="TextBox1_DropDownExtender" dropdowncontrolid="ListBox1"
        runat="server" enabled="True" targetcontrolid="TextBox1"
        highlightbackcolor="WhiteSmoke" />
</div>
<asp:ListBox ID="ListBox1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ListBox_SelectedIndexChanged">
    <asp:ListItem>Item 1</asp:ListItem>
    <asp:ListItem>Item 2</asp:ListItem>
    <asp:ListItem>Item 3</asp:ListItem>
</asp:ListBox>

コード:

protected void ListBox_SelectedIndexChanged(object sender, EventArgs e)
{
    TextBox1.Text = ListBox1.SelectedItem.Text;
}

ただし、ページに多数の TextBox、Extender、および ListBox がある場合、これは管理が非常に困難になる可能性があるため、TextBox、Extender、および ListBox をすべて UserControl にまとめることを検討することをお勧めします。

于 2011-03-02T18:08:56.790 に答える