2010-01-15 77 views
0

標準.Net字段驗證程序是否可以更改文本字段中的錯誤發生的樣式?RequiredFieldValidator和樣式

如果我例如有一個需要填寫的字段數字,如果字段沒有填寫,它應該在提交的文本字段周圍創建一個紅色邊框。

希望這可以用標準控件完成,所以我不需要使用例如重新編碼它。 jQuery驗證插件等

-Dofs

回答

0

您可以通過使用Ajax工具包做到這一點,由蘭斯張on this page解釋。

+0

我想用常規的asp.net控件來做,而不是依賴於第三方控件。 – Dofs 2010-01-15 11:24:14

+0

Microsoft如何成爲第三方?這是一個開源庫,但它仍然由微軟提供。 – 2010-01-15 11:51:18

1

您可以用ASP.Net本地組件做到這一點:

在ASP頁:

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

<asp:CustomValidator ID="CustomValidator1" runat="server" OnServerValidate="ValidateTextBox1" ForeColor="Red" SetFocusOnError="true"></asp:CustomValidator> 

在後面的代碼:

protected void ValidateTextBox1(object source, ServerValidateEventArgs args) 
      { 
       if (TextBox1.Text == string.Empty) 
       { 
        args.IsValid = false; 
        TextBox1.Style.Add("border", "solid 1px red"); 
        CustomValidator1.Text = "required"; 
       } 
       else 
        args.IsValid = true; 

      } 

PS:在按下按鈕,RequiredFieldValidator在CustomValidator之前被激活。如果在同一頁面上有任何內容,則必須將其關閉或將其替換爲CustomValidator。

OR

您可以用CSS和Javascript做。

CSS類:

<style type="text/css"> 
    body 
    { 
     font-family:Arial; 
     font-size:10pt; 
    } 
    .ErrorControl 
    { 
     background-color: #FBE3E4; 
     border: solid 1px Red; 
    } 
</style> 

JavaScript函數:

<script type="text/javascript"> 
function WebForm_OnSubmit() { 
if (typeof (ValidatorOnSubmit) == "function" && ValidatorOnSubmit() == false) { 
    for (var i in Page_Validators) { 
     try { 
      var control = document.getElementById(Page_Validators[i].controltovalidate); 
      if (!Page_Validators[i].isvalid) { 
       control.className = "ErrorControl"; 
      } else { 
       control.className = ""; 
      } 
     } catch (e) { } 
    } 
    return false; 
} 
return true; 
} 
</script> 

現在,驗證ASP.net:

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate="TextBox1" 
    runat="server" ErrorMessage="Required"></asp:RequiredFieldValidator> 

OR

<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> 
<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Required" 
    ControlToValidate="TextBox2" ValidateEmptyText="true" ClientValidationFunction="Validate"></asp:CustomValidator> 
<script type="text/javascript"> 
    function Validate(sender, args) { 
     if (document.getElementById(sender.controltovalidate).value != "") { 
      args.IsValid = true; 
     } else { 
      args.IsValid = false; 
     } 
    } 
</script>