CheckBoxValidator хочет свойство ControlToValidate, чтобы указать на CheckBox, в CheckBoxList, или любой другой элемент управления, имеющий по крайней мере один дочерний элемент управления
<р> Итак, это все потребности CheckBoxValidator. работать на стороне сервера.
<р> Еще два переопределения позволяют использовать на стороне клиента validation.
They и включают в себя, если (EnableClient) состояние, так что мы можем отключить проверку на стороне клиента во время разработки, как мы делаем с другими валидаторов.
<р> Я зарегистрировал два обычай (Expando) атрибуты первого атрибута validator.The (evaluationfunction) позволяет рамки знаю, функция Javascript, чтобы вызвать для клиентской стороны validation.The второй (CheckedCount ) является пользовательское свойство, которое хранит счетчик выбранных флажков
<р> защищен коррекции недействительными AddAttributesToRender (HtmlTextWriter писатель) {base.
AddAttributesToRender (писатель). если (EnableClientScript) {Page.ClientScript.RegisterExpandoAttribute (this.ClientID, "evaluationfunction", "CodeGolem_CheckBoxValidator", ложь); Page.ClientScript.RegisterExpandoAttribute (this.ClientID, "CheckedCount", getCheckedCount () ToString (), неверно.); }}
<р> Наконец, вот Javascript функция, зарегистрированы на странице в случае OnPreRender
<р> защищен коррекции недействительными OnPreRender (EventArgs е) {base.OnPreRender (е). если (EnableClientScript) {строка OnClick = string.format ("если (document.getElementById) this.
checked ('{0}') CheckedCount ++;.. еще document.getElementById ('{0}');" CheckedCount--, ClientID); Еогеасп (объект флажок в getCheckBoxes ()) {если (флажок CheckBox) ((CheckBox) флажок) .Attributes.Add ("щелчок", OnClick); если (флажок ListItem) ((ListItem) флажок) .Attributes.Add ("щелчок", OnClick); } Page.ClientScript.RegisterClientScriptBlock (GetType (), "ValidationFunction", string.format (@ "функции CodeGolem_CheckBoxValidator (отправитель) {{вернуться sender.CheckedCount> = {0} && sender.
CheckedCount}}", _minimumChecked, _maximumChecked), правда); }}
<р> Это добавляет обработчик события OnClick на каждом флажок, увеличивая или уменьшая CheckCount.Val