2016-07-21 3 views
1

入力値が正しく更新されていますアップデートHTML入力値は、イベントASP.NET

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     txtSupplierType.Value = "Local"; 
    } 
} 

が、我々のような他の制御事象から、それを更新しようとすると:

ASPXページ

<asp:DropDownList runat="server" ID="ddlProduct" name="form-control" class="form-control select-chosen" OnSelectedIndexChanged="ddlProduct_SelectedIndexChanged" AutoPostBack="true"> </asp:DropDownList> 

のSelectedIndexChangedイベント

protected void ddlProduct_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     txtSupplierType.Value = "Global"; 
    } 

それが更新されませんとにrunat =「サーバー」と他の多くのHTMLコントロールは、ページのロードのように動作しません。ここで

<input type="text" id="txtSupplierType" runat="server" name="example-text-input" class="form-control" /> 
+0

コードを投稿してください、少なくともddlProductの定義。たとえば、AutoPostBack = "true"に設定しましたか? – Luca

+0

はい。 OnSelectedIndexChanged = "ddlProduct_SelectedIndexChanged" AutoPostBack = "true" onchange = "changedropdown()"

+0

サーバー側からの変更制御の動作のために、入力要素の更新パネルを使用することができます。 –

答えて

1

はあなたの条件に応じて動作する完全なコードです。

<asp:UpdatePanel ID="PnlUsrDetails" runat="server"> 
       <ContentTemplate> 
        <asp:DropDownList runat="server" ID="ddlProduct"                    name="form-control" 
         class="form-control select-chosen" 
         OnSelectedIndexChanged="ddlProduct_SelectedIndexChanged" 
         AutoPostBack="true"> </asp:DropDownList> 

        <input type="text" id="txtSupplierType" runat="server" 
         name="example-text-input" class="form-control" /> 
       </ContentTemplate> 
      </asp:UpdatePanel> 

このコードは、更新パネルの働きにより動作します。更新パネルのコントロールが状態を変更するたびに非同期ポストバックを開始します。デフォルトでは、更新パネルの更新モードプロパティは「自動」に設定されています。更新パネルのコンテンツテンプレートのコードのみがサーバーに送信され、更新された情報が返されます。

他のユーザーがコードを理解してより良い方法で作業できるように、全体コードを提供することをお勧めします。