1
我需要將css類應用於Web窗體上的無效控件。我想讓它成爲一個可重用的課程。這是我到目前爲止有:將CSS類應用於Web窗體上的無效控件
public class Validation
{
public static void ApplyInvalidClass(Page page, string className)
{
foreach (System.Web.UI.WebControls.BaseValidator bv in page.Validators)
{
if (!bv.IsValid)
{
Control ctrl = page.FindControl(bv.ControlToValidate);
if (ctrl != null)
{
if (ctrl is TextBox)
{
TextBox txt = ctrl as TextBox;
txt.CssClass = "invalid";
}
if (ctrl is DropDownList)
{
DropDownList ddl = ctrl as DropDownList;
ddl.CssClass = "invalid";
}
if (ctrl is CheckBox)
{
CheckBox cb = ctrl as CheckBox;
cb.CssClass = "invalid";
}
if (ctrl is HtmlGenericControl)
{
HtmlGenericControl html = ctrl as HtmlGenericControl;
html.Attributes.Add("class", className);
}
}
}
}
}
}
的問題是什麼,我把這種對淨用戶控件,我猜是因爲我傳遞頁面,page.FindControl(bv.ControlToValidate)總是空。
有沒有更好的方法來做到這一點?
我認爲正確的行爲需要解決使用validator.NamingContainer.FindControl(...),而不是page.FindControl(...)。在一個頁面中可能有幾個同名的控件。 – sisve 2012-04-01 08:25:37