2010-11-11 5 views
0

У меня проблема с проверкой всех текстовых полей в PlaceHolder. Я сделал PlaceHolder, и я не знаю, как проверить, что все текстовые поля имеют целые числа в виде текста. Есть идеи?Подтвердить все текстовые поля в PlaceHolder

public void Made_Matrix (PlaceHolder Matrix, int Size){ 
for(int row=0; row < size; row++){ 
for(int col=0; col < size; col++){ 
TextBox TB = New TextBox(); 
Matrix.Controls.Add(TB); 
TB.ID = TB + Convert.ToString(row) + Convert.ToString(col); 
TB.AutoPostBack = "true"; 
} 
Matrix.Controls.Add(new LiteralControl ("<br/>")); 
} 
} 
public void TB_Validate (PlaceHolder Matrix, int Size){ 
for (int row = 0; row < size; row++){ 
for (int col = 0; col < size; col++){ 
string Ident = TB + Convert.ToString(row) + Convert.ToString(col); 

Как я могу найти текст, скрытый в TextBox с идентификатором от Ident? И как проверить, является ли это числовым? Я полагаю, что в .NET нет функции типа IsNumeric(), правильно?

ответ

2

Добавить CompareValidators для каждого динамического текстового поля с Operator="DataTypeCheck" и Type="Integer". Возможно, вы также захотите определить ValidationGroup f.e. VG_MATRIX для каждого валидатора.

1

Как насчет Int.TryParse или Double.TryParse для проверки входного значения?

Вы можете перечислить элементы управления в заполнителе, подобном этому.

foreach (Control control in Matrix.Controls) 
{ 
    TextBox textbox = control as TextBox; 
    if (textbox != null) 
    { 
     // Do stuff with textbox.Text 
    } 
} 

На самом деле, просто сделать Matrix.FindControl(Ident) as TextBox, если вы знаете точный идентификатор.

+0

ОК, это хорошая идея, но как получить текст для каждого текстового поля ...:/ – Alliah

+0

Я обновил ответ двумя способами, чтобы добраться до текстовых полей. – batwad

Смежные вопросы