2012-03-26 2 views
0

私は動的にテキストボックスを生成し、以下のようにプレースホルダに追加しています。動的に生成されたテキストボックスにアクセスしていくつかの検証を適用する方法

TextBox txt = new TextBox(); 

txt.ID = "txt" + ds.Tables[0].Rows[i]["id"].ToString(); 
txt.Width = 250; 
txt.ToolTip = ds.Tables[0].Rows[i]["TotalMarks"].ToString(); 
phMemberTextboxes.Controls.Add(txt); 
phMemberTextboxes.Controls.Add(new LiteralControl("\n<br />")); 

これらのテキストボックスから値にアクセスしたいと思います。テキストボックスの値がツールヒントの値よりも小さいかどうかを確認する必要があります。もしそうなら、テキストボックスをリセットする必要があります。 どうすればいいですか?

+0

? – Coder

+0

私はこれらのtextboxes.Validation私はクライアント側でやりたいリセットする必要があります。ツールヒントの値が大きい場合は他にメッセージボックスを表示する必要があります – Shah

答えて

1

uはプレースホルダ動的に生成されたコントロールを追加すると、そのIDは変更を取得し、あなたがでそれにアクセスするために最初のコントロールのClientIDを設定する必要がありますクライアント側:

txt.ClientID = "txt" + ds.Tables[0].Rows[i]["id"].ToString(); 
txt.Attributes.Add("onblur", string.Format("validateControl('{0}');", txt.ClientID); 
次に、あなたのJavaScriptで

あなたがチェックして、クライアント側で、またはサーバ側で、テキストボックスの値をリセットしたい
function validateControl(ctrlId){ 
    var txtCtrl = document.getElementById(ctrlId); 
    int txtVal = txtCtrl.value; 
    // Note that getAttribute doesn't work in IE 6 and requires exact property name 
    var txtMarks = parseInt(txtCtrl.getAttribute("title")); 
    if (txtVal.length < txtMarks.length){ 
     // Reset textbox value and show the message 
     txtCtrl.value = ""; 
     var msg = "Value must be greater than " + txtMarks; 
     alert(msg); 
     txtCtrl.focus(); 
    } 
} 
+0

フォーカスがコントロールから離れるとJavascriptの_onblur_が呼び出されます。私のコードでは、Marksより小さい場合は値をリセットし、ユーザーに正しい値を入力するよう警告し、フォーカスを設定します。 – Coder

+0

投稿に.lengthを追加しました。 – Pankaj

+0

属性を取得するときにタイトルにする必要があります。 – Pankaj

0

TextBoxを設定するonclick属性。

YourButton.Attributes.Add("onclick", "YourJavascriptFunction('" + txt.ClientID + "');"); 
YourJavascriptFunction

で今

function YourJavascriptFunction(ID) 
{ 
    var txtCtrl = document.getElementById(ctrlId); 
    int txtVal = txtCtrl.value; 
    // Note that getAttribute doesn't work in IE 6 and requires exact property name 
    var txtMarks = parseInt(txtCtrl.getAttribute("title")); 
    if (txtVal.length < txtMarks.length){ 
     // Reset textbox value and show the message 
     txtCtrl.value = ""; 
     var msg = "Value must be greater than " + txtMarks; 
     alert(msg); 
     txtCtrl.focus(); 
    } 

} 

+0

テキストボックスをクリックすると、検証が確認されますか? – Shah

+0

あなたの要件に応じて任意のイベントを選択することができます。 – Pankaj

+0

どのように検証を実行しますか?私はどのイベントで意味するのですか? – Pankaj

関連する問題