2011-03-02 14 views
0

ドロップダウンから値を取得してTextBoxに戻るにはどうすればよいですか? 以下は動作しません。リストからアイテムを選択することもできます。ASP.NET Textbox DropDownExtender

<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> 

答えて

1

あなたはリストボックスのSelectedIndexChangedイベントのハンドラを追加する場合は、テキストボックスに、選択した項目のテキストを置くことができます。

マークアップ:

<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、およびリストボックスをページ上に配置することで、TextBox、Extender、およびListBoxをすべてまとめてUserControlにラップすることを検討することができます。

+0

これは動作します。ありがとう – TroyS

2

あなたは、選択した項目からテキストを取得するJavaScriptのメソッドを呼び出すためにあなたのListItemへのonchangeイベントを配線することをお勧めします。 JavaScriptコードは次のようになります(テストされていません)。

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

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

リストボックスコントロールを適切に配線します。 JavaScriptはテキストの設定を処理しているので、AutoPostBackオプションはもう必要ないことに注意してください。

<asp:ListBox ID="ListBox1" runat="server" onchange="return setOptionText()"> 
+0

これは動作しますが、サーバー機能を実行する必要があるためAutoPostBackを実行する必要があります。ありがとうございました。 – TroyS