Вопрос
От: pongo  
Дата: 15.07.05 09:58
Оценка:
Я для себя пишу программу "Список должников". Делаю её ввиде веб-страницы, но вопрос о другом.
Допустим, мне надо добавить новую функцию. Скажем "Удалить должника".
Действия:
1) Добавить такую кнопку на тулбар
2) Написать обработчик события
        private void toolRemoveDebter_Click(object sender, EventArgs e)
        {
            prepare_reload_RemoveDebter();
        }

3)
        private void prepare_reload_RemoveDebter()
        {
            webList.Navigate( "about:blank" );
            _webList_navigate = 5; 
        }

4) В webList_Navigated добавить
            else if ( _webList_navigate == 5 ) // remove debter
            {
                webList.Document.Write( _model.Debters.GetRemoveDebterPage() );
                webList.Document.Body.GetElementsByTagName( "input" )[2].Focus();
                _webList_navigate = 1;
            }

5) В класс DebtersList добавить
        public string GetRemoveDebterPage()
        {
            string result = _body +
                "\n<!-- Remove debter -->\n" +
                "\n<form name=web method=get action=\"Add://remove_debter\"><div style=\"background-color: #ffffff; padding-top: 12px;border-style:solid; border-width:1 0 0 0;border-color:black;" +
                        "padding-botton:3px;\">" +
                "\n<span style=\"height: 23px; font-size: 120%\"><b>Удалить должника?</b> </span><BR>" +
                "<input type=hidden name=res value=\"yes\">" +
"            &nbsp;<input type=\"submit\" onclick=\"document.all.res.value='yes'\" value=\"Да\" />&nbsp;<input type=\"submit\" onclick=\"document.all.res.value='no'\" value=\"Нет\" /></form>\n\n</body>";

            return result;
        }

6) В webList_Navigating добавить
                else if ( e.Url.Host == "remove_debter" )
                {
                    if ( webList.Document.Body.GetElementsByTagName( "input" )[0].GetAttribute( "value" )
                        == "yes" )
                    {
                        _model.Debters.Remove( _model.Debters.nCurrentDebter );
                    }

                    e.Cancel = true;

                    _model.SelectDebter( _model.Debters.Count - 1 );

                    prepare_reload_webList();
                    prepare_reload_webDebters();

                    webAddBar.Document.Body.GetElementsByTagName( "input" )[0].Focus();
                }

7) теперь запускаю. проверяю. ага, работает. Но если удалить всех должников то там какая то трабл будет. но я этим еще займусь.


вот. и собственно вопрос. А 7 шагов это нормально? Все так делают? Нельзя ли это как то улучшить? А то вот допустим через полгода надо будет мне что-нибудь добавить и вспомню ли я всё это?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.