標準.Net字段驗證程序是否可以更改文本字段中的錯誤發生的樣式?RequiredFieldValidator和樣式
如果我例如有一個需要填寫的字段數字,如果字段沒有填寫,它應該在提交的文本字段周圍創建一個紅色邊框。
希望這可以用標準控件完成,所以我不需要使用例如重新編碼它。 jQuery驗證插件等
-Dofs
標準.Net字段驗證程序是否可以更改文本字段中的錯誤發生的樣式?RequiredFieldValidator和樣式
如果我例如有一個需要填寫的字段數字,如果字段沒有填寫,它應該在提交的文本字段周圍創建一個紅色邊框。
希望這可以用標準控件完成,所以我不需要使用例如重新編碼它。 jQuery驗證插件等
-Dofs
您可以通過使用Ajax工具包做到這一點,由蘭斯張on this page解釋。
您可以用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>
我想用常規的asp.net控件來做,而不是依賴於第三方控件。 – Dofs 2010-01-15 11:24:14
Microsoft如何成爲第三方?這是一個開源庫,但它仍然由微軟提供。 – 2010-01-15 11:51:18