2011-01-10 16 views
0

私はASP.NETがとても新しいです。コンボボックスからASP.NETテキストボックスにデータを取り込む選択したインデックスの変更

私はAJAX ComboboxとTextBoxを持つASP.NETページを持っています。コンボボックスはデータベースからデータを取り込み、IDの値を持ち、名前を表示します。テキストボックスにアドレスが表示されます。名前のコンボボックスのインデックスが変更されたら、アドレステキストボックスの値を変更するだけです。 アドレスを変更してデータベースに保存することができます。 この(単純な)タスクを行うにはどうすればよいですか?あなたのComboBox1_SelectedIndexChangedイベントで

コード今のところ...

<form id="form1" runat="server"> 
    <div> 
     <asp:ComboBox ID="ComboBox1" runat="server" DataSourceID="AccessDataSource1" DataTextField="CompositeName" 
      DataValueField="Id" MaxLength="0" Style="display: inline;" 
      AutoCompleteMode="SuggestAppend" 
      onselectedindexchanged="ComboBox1_SelectedIndexChanged"> 
     </asp:ComboBox> 
     <asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/StudentDB.accdb" 
      SelectCommand="SELECT [Id], [Name], [Address] FROM [tblStudents]"> 
     </asp:AccessDataSource> 
    </div> 
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
    </form> 

答えて

1

下記のマークアップをお試しください。 DropDownListを使用しましたが、AJAX ComboBoxで置き換えることができました。 DetailsViewは、CSSとItemTemplateでさらに強化することができます。 City、CountryなどのItemTemplateに、より多くのフィールドを入れることができます。

<asp:AccessDataSource DataFile="App_Data/Students.accdb" ID="AccessDataSource1" 
     DataSourceMode='DataSet' SelectCommand='Select ID, [First Name], [Last Name] from Students' 
     runat='server' > 

    </asp:AccessDataSource> 

    <asp:AccessDataSource DataFile="App_Data/Students.accdb" ID="AccessDataSource2" 
     SelectCommandType="Text" SelectCommand='Select [ID], [Address] from [Students] where [email protected]' 
     runat='server'> 
     <SelectParameters> 
      <asp:ControlParameter ControlID='DropDownList1' Name='id'/> 
     </SelectParameters> 
    </asp:AccessDataSource> 

    <asp:DropDownList ID='DropDownList1' runat='server' AutoPostBack='true' DataSourceID='AccessDataSource1' 
     DataTextField="First Name" DataValueField='ID'> 
    </asp:DropDownList> 

    <asp:DetailsView ID='DetailsView' runat="server" DataSourceID='AccessDataSource2' DataKeyNames='ID'> 

     <Fields> 
      <asp:TemplateField> 
       <ItemTemplate> 
        <asp:TextBox ID='AddressTextBox' runat='server' Text='<%# Bind("Address") %>'></asp:TextBox> 
        <asp:Button ID='AddressSaveButton' runat='server' Text='Save' UseSubmitBehavior='true' /> 
       </ItemTemplate> 
      </asp:TemplateField> 
     </Fields> 

    </asp:DetailsView> 
0

。 TextBox1.Text = CurrentAddress変数を設定します。 実際には、私はaspで直接bindingsコマンドの大ファンではありません。

Page_Load()イベントで発生するLoadMyComboBox()という名前のSubを作成します。

私は、あなたのアップデートを実行するために発砲されるボタンまたは何らかのタイプのイベントがあると思いますか? TextChangedはここで過度になるでしょう。更新ボタンを追加して、コードの背後に更新コマンドを作成すると、更新が処理されます。更新が完了したら、単にLoadMyComboBox()を呼び出してコンボボックスをリフレッシュして必要な変更を更新し、この時点でテキストボックスで必要な変更を行います。

0

uは、ドロップダウンリスト自体を使用してこれを行うことができます。 DropDownListのSelectedIndexChangedイベントで、ドロップダウンリストの選択に従ってTextBoxコントロールにアドレスをバインドし、これをパラメータとして渡してデータベースに保存します。

関連する問題