2017-07-29 8 views
0

私は、テキストボックスとラベルの隣に座っています。ラベルのテキスト値はドロップダウンリストから来ます。私は、ラベルの値がテキストボックスの値よりも小さく、それが正しい値がテキストボックスに入力されるまで続けるなら、テキストボックスの焦点をそれ自身に変えなければなりません。 私を助けることができますか?テキストが変更された場合のテキスト値とラベル値の比較とチェックの方法は?

これは私のコードです: - た.aspxファイル: -

<div class="row mb10"> 
    <asp:Label runat="server" ID="lbl_Adults" CssClass="col-lg-2 control-label" Text="Adults : " AssociatedControlID="txt_Adults"></asp:Label> 
     <div class="col-lg-6"> 
      <div class="col-lg-4" style="margin-left:-15px;"> 
       <asp:TextBox runat="server" ID="txt_Adults" CssClass="form-control" OnTextChanged="txt_Adults_TextChanged" AutoPostBack="true"></asp:TextBox> 
       <asp:RequiredFieldValidator Font-Bold="true" ForeColor="Red" runat="server" ID="req_Adults" ControlToValidate="txt_Adults" ErrorMessage="Enter No. of Adults"></asp:RequiredFieldValidator> 
      </div> 
      <div class="col-lg-8" style="font-family:'Copperplate Gothic'"> 
       Only <asp:Label runat="server" ID="lbl_No_Of_Adults"></asp:Label> Adult(s) allowed. 
      </div> 
    </div> 
</div> 

ここでは.csファイルのコードは次のとおりです。 -

protected void txt_Adults_TextChanged(object sender, EventArgs e) 
    { 

    while (true) 
    { 
     if (txt_Adults==null) 
     { 
      txt_Adults.Text = Convert.ToString("0"); 
      txt_Adults.Focus(); 
      //txt_Adults_TextChanged(sender, e); 
     } 
     else if (Convert.ToInt32(txt_Adults.Text) > Max_NoAdults) 
     { 
      txt_Adults.Text = Convert.ToString("0"); 
      txt_Adults.Focus(); 
      //txt_Adults_TextChanged(sender, e); 

     } 
     else 
     { 
      NoAdults = Convert.ToInt32(txt_Adults.Text); 
      //NoAdults is a static variable that collects final(right) value of txt_Adults.text; 
      break; 
     } 

    } 

} 

答えて

0

は単純にそうでなければ、この

protected void txt_Adults_TextChanged(object sender, EventArgs e) 
{ 
    //this condition will always be true unless and until both the `Text` 
    //string are same 
    if (lbl_No_Of_Adults.Text.Trim() != txt_Adults.Text.Trim()) 
    { 
     txt_Adults.Focus(); 
    } 
} 

あなたの場合を行いますLabelの値がTextBoxより小さい場合にのみ条件を一致させたいこれを行う。

protected void txt_Adults_TextChanged(object sender, EventArgs e) 
{ 
    int a = 0 , b =0; 
    int.TryParse(lbl_No_Of_Adults.Text.Trim(), out a); 
    int.TryParse(txt_Adults.Text.Trim(), out b); 

    if (a < b) 
    { 
     txt_Adults.Focus(); 
    } 
} 
+0

ありがとうございます!それはスムーズに働いた。 –

+0

**エラーチェック**はここには含まれていません。だから、もしあなたが 'txt_Adults'に_numbers_以外のものを入力すると、いくつかのエラーを処理することになります。 –

+0

ありがとう、私はそれを注意します。 –

関連する問題