2011-07-29 7 views
0

試過這樣:如何直接從RequiredFieldValidator中直接設置變量的自定義錯誤消息?

<asp:RequiredFieldValidator 
    ID="rqrNome" 
    runat="server" 
    Display="Dynamic" 
    ControlToValidate="txtNome" 
    ErrorMessage="<%= myVar %>"> 
       &nbsp;* 
</asp:RequiredFieldValidator> 

但目前看來,這是不可能的。我將擺脫去.ascx.cs並使用每個驗證程序

rqrNome.ErrorMessage = myVar; 

有時候太多的變量要檢查。我想直接放在.ascx上。

可能嗎?

我覺得我不能從RequiredFieldValidator的

+0

您的標籤結構不正確。 ErrorMessage屬性關閉後有內容,並且沒有提及myVar。可能更好,如果你堅持更完整的描述。 –

+0

@Brian Scott:?標籤格式良好。如果我把這個代碼,我得到的錯誤'分析器錯誤消息:服務器標記不能包含<% ... %>構造。' – markzzz

回答

1

刪除runat="server"標籤試試這個:

<asp:RequiredFieldValidator 
    ID="rqrNome" 
    runat="server" 
    Display="Dynamic" 
    ControlToValidate="txtNome"> 
<%= myVar %>&nbsp;* 
</asp:RequiredFieldValidator> 

更新:

好,以及如何使用上述通過設置文本的「 myVar的」。然後包含以下linq查詢以遍歷頁面上的所有必需的字段驗證者;

var requiredFieldValidators = 
from validators in this.Page.Controls.Cast<Control>() 
where validator is RequiredFieldValidator 
select (RequiredFieldValidator)validator; 

然後遍歷所有驗證器,設置它們的ErrorMessage等於它們已經正確設置的text屬性。

requiredFieldValidators.ToList().ForEach(c => c.ErrorMessage = c.Text); 
+0

這不是'ErrorMessage' – markzzz

+0

我想使用ErrorMessage,所以在客戶端,與ValidationSummary,我可以顯示我的自定義警報消息(並且數據不會發送到服務器)。 – markzzz

+0

@markzzz:查看修訂後的解決方案。 –

相關問題