2012-01-10 12 views
2

別のテキストを入力しているときにasp.netのテキストボックスを埋め込む方法 .. 1つのテキストボックスの変更は、私のページをリフレッシュする。別のテキストボックスに入力されたテキストに応じて、ASP.NETのオートフィルテキストボックス

+0

あなたは 'OnTextChanged'イベントを使ってみましたか? _anything_を試してみましたか? – Shai

+0

このプロジェクトでjQueryを使用していますか? –

+0

JavaScriptを使用する必要があります。最も簡単な方法 - クラウディオが提案したjQueyrを使って。このようにして3行程度のコードになります。 – ub1k

答えて

2

これを試してください。 AJAX Control Toolkitが必要です。 Visual Studioにインストールする方法については、Installing AJAX Control Toolkit 4 in Visual Studio 2010の記事を読んでください。

次に、ASPXページにScriptManagerを追加する必要があります。あなたは、次のコードを追加する必要があります:あなたが行う必要がある何

<asp:ScriptManager ID="ScriptManager1" runat="server"> 
</asp:ScriptManager> 

は、あなたのページへのUpdatePanelを追加することです。この更新パネル内で、テキストボックスを配置する必要があります。つまり、ページ全体ではなく、更新パネル内のコントロールのみが更新されます。これを行うには、次のコードを追加します。

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    <ContentTemplate> 

    <!--Add your Textbox Control to update here: Textbox1--> 
    <asp:TextBox ID="Textbox1" runat="server" ReadOnly="True"></asp:TextBox> 
    <asp:TextBox ID="Textbox2" runat="server" ReadOnly="True" ontextchanged="Textbox2_TextChanged"></asp:TextBox>        

    </ContentTemplate> 
    <Triggers> 
     <!--This is the textbox you will be typing text into: TextBox2--> 
     <asp:AsyncPostBackTrigger ControlID="Textbox2" EventName="TextChanged" /> 
    </Triggers> 
</asp:UpdatePanel> 

をトリガーは、フォーム上のコントロールページがポストバックを開始する必要が指示します。今すぐ.csファイルで、Textbox2 TextChangedイベントのイベントハンドラを追加する必要があります。次のコードを追加してください:

protected void Textbox2_TextChanged(object sender, EventArgs e) 
{ 
    // Set the text of textbox1 = textbox2 
} 

これが役立つことを願っています。

+0

これはとても役に立ちました、感謝しています:) – Mido

1

これを実行するには、JavaScriptを使用する必要があります。 ASP.Netコードはサーバー側で実行されます。つまり、最初にポストバックが発生することなくページに影響することはありません。 OnTextChangedイベントを読んで、javascriptでそれをどのようにフックするのですか? jQueryと呼ばれるjavascriptライブラリがありますが、これは厳密には必要ではありませんが、すべてを簡単にします。

0

JQueryを使用します。このフィールドをautofilするためにデータベースなどのデータソースに頼っている場合は、サーバーへのAJAX呼び出しを行う必要があります。

2

AJAXの必要はありません。 JQueryで十分です。コードは、ボックスがへの書き込みの

  1. テキスト1のIDを仮定すると、それ

    $('#text1').bind('keyup', function(){ 
    
        $('#text2').val($('#text1').val()); 
    
    }); 
    

    を行います。あなたはそれがこの

    $('<%=text1.ClientID%>').bind('keyup', function(){ 
    
        $('<%=text2.ClientID%>').val($('#text1').val()); 
    
    }); 
    

    ああのように見えるし、それを包むことように、正しいIDを取得するには、クライアントIDを使用する必要がありますテキストが.NETで

にコピーされます

  • テキスト2テキストボックス$(document).readyに準拠する。また、あなたのページにJQueryライブラリを組み込む必要があります。

    ポストバックやページの更新はまったくありません。それはあなたの最も軽いソリューションであり、実装が簡単です。

  • 関連する問題