2009-04-08 2 views
0
<asp:DropDownList ID="ddl1" runat="server"> 
    <asp:ListItem Text="First" Value="1"></asp:ListItem> 
    <asp:ListItem Text="Second" Value="2"></asp:ListItem> 
</asp:DropDownList> 

<asp:TextBox ID="tb1" runat="server"/> 

<asp:Button ID="btn1" text="Go!" OnClick="btn1_Click" runat="server" /> 



public void btn1_Click(object sender, EventArgs e) 
{ 


} 

Если пользователь выбирает раскрывающийся список с текстом «Первый», данные в текстовом поле должны быть числом. Если они выбрали «Второе», это должны быть только буквы.Динамическое изменение типа валидатора в текстовом поле

Как я могу динамически создать элемент управления проверкой и изменить его поведение?

Я попытался создать объект проверки, установив элемент управления для проверки на текстовое поле и вызвав его метод Validate в событии btn1_click, но он не сработал.

обновление

вот код, который я попробовал:

public void btn1_Click(object sender, EventArgs e) 
    { 
     RequiredFieldValidator rfv1 = new RequiredFieldValidator(); 

     rfv1.ID = "rfv1"; 
     rfv1.ControlToValidate = tb1.ID; 
     rfv1.Text = "please enter a value for tb1"; 


     rfv1.Validate(); 

     Response.Write("<br>Page.IsValid: " + Page.IsValid); 

    } 
+0

Можете ли вы разместить больше кода? В частности, код, упомянутый в последнем предложении? – Anders

ответ

2
  • Вариант 1:
    Добавить как валидаторы в текстовое поле и установить их включить/отключить на основе выбор пользователя.

  • Вариант 2:
    Используйте валидатора, который принимает во внимание DropDownList (и, возможно, обернуть все это в пользовательский элемент управления).

Из них, я думаю, что я предпочитаю вариант 1, но я должен был бы попробовать его, чтобы увидеть, насколько хорошо она действительно работает в браузере (как легко или можно поменять местами с поддержкой валидатор в JavaScript) ,

Вы не хотите, чтобы добавить/удалить валидатор динамически, так что должно быть сделано на стороне сервера, и это означает, что делает пост назад, когда пользователь изменяет DROPDOWNLIST выбор, чтобы установить правильный валидатор перед тем вы можете подтвердить текстовое поле. Оба моих предложенных решения избегают этого.

+0

спасибо, простое решение! – Blankman

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