2012-03-26 12 views
0

Ich erzeuge dynamische Textfelder und füge sie zu einem Platzhalter wie folgt hinzu.wie auf dynamisch generierte Textfelder zugreifen und eine Überprüfung anwenden

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 />")); 

ich möchte auf die Werte aus diesen Textfeldern zugreifen. und müssen prüfen, ob der Textfeldwert kleiner als der Tooltip-Wert ist. Wenn ja, müssen Sie Textfelder zurücksetzen. Wie kann ich das tun?

+0

, wo Sie wollen überprüfen und Textbox Wert, auf Client-Seite oder auf Server-Seite zurückgesetzt? – Coder

+0

ON Serverseite muss ich diese textboxes.Validation zurücksetzen, die ich auf der Clientseite tun möchte. Wenn der Wert der Tooltip größer ist, dann ok, sonst muss ein Meldungsfeld angezeigt werden – Shah

Antwort

1

Wenn u dynamisch Steuerelemente erzeugt fügen ihre IDs Platzhalter, erhalten geändert, haben Sie erste Kontrolle des ClientID setzen darauf zugreifen zu Clientseite:

txt.ClientID = "txt" + ds.Tables[0].Rows[i]["id"].ToString(); 
txt.Attributes.Add("onblur", string.Format("validateControl('{0}');", txt.ClientID); 

Dann in Ihrem 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_ wird aufgerufen, wenn der Fokus weg von der Steuerung verschoben wird. In meinem Code setzt es den Wert zurück, wenn es kleiner als Marks ist, weist den Benutzer darauf hin, den richtigen Wert einzugeben, und legt den Fokus darauf fest. – Coder

+0

Gerade hinzugefügt. Länge in Ihrem Beitrag. – Pankaj

+0

Es sollte Titel sein, während das Attribut erhalten wird. – Pankaj

0

TextBox onclick Attribute festlegen.

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

Jetzt in 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

es überprüft die Validierung, wenn ich auf Textbox klicken werde? – Shah

+0

können Sie jedes Ereignis entsprechend Ihrer Anforderung auswählen. – Pankaj

+0

Wie möchten Sie die Validierung durchführen? Ich meine auf welches Ereignis? – Pankaj

Verwandte Themen