Показать сообщение отдельно
Старый 24.06.2014, 10:20   #2  
Dreadlock is offline
Dreadlock
Участник
Аватар для Dreadlock
 
298 / 224 (8) ++++++
Регистрация: 07.05.2009
Адрес: Москва
Можно добавить событие onchange в HTML'ый контрол.

У меня была ситуация, когда надо было всем полям добавить событие на изменение значения в любом поле. Я рекурсивно обходил все элементы на форме и добавлял скрипт:

X++:
private void setControlAttributes(ControlCollection collection)
{        
        foreach (Control curControl in collection)
        {
            if (curControl.GetType() == typeof(DataControlFieldCell) ||
                curControl.GetType() == typeof(TableCell))
            {
                WebControl control;
                if (curControl.GetType() == typeof(DataControlFieldCell))
                {
                    control = (DataControlFieldCell)curControl;
                }
                else
                {
                    control = (TableCell)curControl;
                }
                AttributeCollection attCollection = control.Attributes;
                attCollection.Add("onchange", "onClientChange();");
            }

            if (curControl.Controls.Count != 0)
            {
                setControlAttributes(curControl.Controls);
            }
        }
}
Сам PostBack можно сделать так:
PHP код:
<script type="text/javascript" language="javascript">                  
    function 
onClientChange() {
        
//do the postback
         
__doPostBack('__Page'''); 
    }       
</script> 
P.S. Помнится, что в IE вместо onchange применялось другое событие, но пример найти не могу
За это сообщение автора поблагодарили: trud (3), gl00mie (3).