Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Двойное срабатывание кнопки

71K
23 сентября 2011 года
Abracadavre
12 / / 23.09.2011
Здравствуйте.
Есть одна проблема: в моем проекте ASP.NET при нажатии на кнопку в начале срабатывает событие приписанное page:Load а потом уже непосредственно событие, приписанное кнопке.
Подскажите пожалуйста, как это можно исправить?
5
23 сентября 2011 года
hardcase
4.5K / / 09.08.2005
Убрать один из обработчиков.
Хотите более полный ответ - покажите код. Телепаты пока в отпуске.
71K
23 сентября 2011 года
Abracadavre
12 / / 23.09.2011
Цитата: hardcase
Телепаты пока в отпуске.



Жаль, а я так на них надеялся :)

Код на загрузке страницы

Код:
protected void Page_Load(object sender, EventArgs e)
{
    bs.OpenConnection(ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString);
       
        if (Request.Params["LicenseID"] == null)
    {
         ListView1.DataSource = new DataView(bs.LoadDataSetLicenses(Convert.ToInt32(Request.Params["UserID"])).Tables[0]);

    }
       else
           {
               ListView1.DataSource = new DataView(bs.LoadConcreteLicense(Convert.ToInt32(Request.Params["UserID"]), Convert.ToInt32(Request.Params["LicenseID"])).Tables[0]);

               int count = bs.FindCount();

               if (count != 0)
               {
                   int id = Convert.ToInt32(bs.FindID());
                   id++;
                   bs.IncertRequest(id, Convert.ToInt32(Request.Params["UserID"]), Convert.ToInt32(Request.Params["LicenseID"]), DateTime.Now, "response");
               }
               else
               {
                   bs.IncertRequest(1, Convert.ToInt32(Request.Params["UserID"]), Convert.ToInt32(Request.Params["LicenseID"]), DateTime.Now, "response");    
               }
               
           }

        ListView1.DataBind();
        bs.CloseConnection();
}


Код на кнопке:

Код:
protected void Button2_Click(object sender, EventArgs e)
    {
        if (Request.Params["LicenseID"] == null)
        {
            Response.Redirect("~/UsersList.aspx");
        }
            else
         {

             
             string url = "UserLicensesList.aspx?UserID=" + Request.Params["UserID"];
             Response.Redirect(url);
         }
    }
5
23 сентября 2011 года
hardcase
4.5K / / 09.08.2005
А что собственно непонятно-то? Page_Load отрабатывает всегда, учите матчасть: ASP.NET Page Lifecycle.
71K
23 сентября 2011 года
Abracadavre
12 / / 23.09.2011
Ох, спасибо.
Прошу простить мне мое незнание, ибо я еще только в процессе обучения и еще не постиг всех тонкостей (да и не только) языка.
Однако в любом случае было бы интересно узнать, куда нужно убрать события с Load, чтобы страница работала правильно.
5
23 сентября 2011 года
hardcase
4.5K / / 09.08.2005
А зачем вообще у этой кнопки обработчк? Судя по нему она может быть смело заменена на <a href="UserLicensesList.aspx?UserId=...&LicenceId=...">
71K
23 сентября 2011 года
Abracadavre
12 / / 23.09.2011
Так-то да, но уже просто интересно, как-же все-таки ее победить.
69K
23 сентября 2011 года
Пелядь
9 / / 23.09.2011
Тебе, дружок, помочь сможет только одно

71K
23 сентября 2011 года
Abracadavre
12 / / 23.09.2011
Цитата: Пелядь
Тебе, дружок, помочь сможет только одно



Эта книга мне к сожалению не помогла, вследствии чего я и решил обратиться на этот форум. Я много не знаю, но Троелсена читал. Хотя возможно я был невнимателен и вы будете столь любезны, что укажете мне страницу, на которой есть информация по моему вопросу?

69K
23 сентября 2011 года
Пелядь
9 / / 23.09.2011
Один умный программист, как-то сказал мне, что не собирается делиться той информацией, на поиски которой он потратил несколько дней и ночей. С тех пор я придерживаюсь его точки зрения. Если тебе все сразу разжувать, сказать странцу и строчку, то ты ничему не научишься. Читай с самого начала, изучай, и рано или поздно у тебя все начнет получаться. Кроме того, там еще уйма интересных и полезных вещей, дерзай.
71K
23 сентября 2011 года
Abracadavre
12 / / 23.09.2011
Может этот программист вовсе не был таким умным?
Ведь если придерживаться такой точки зрения - в чем смысл тематических форумов по программированию? Да и в таком случае не лишимся ли мы в скором времени тех самых книг, в которых "уйма интересных и полезных вещей", ибо автор тоже может подумать - "Есть тот-же MSDN, так зачем мне делиться информацией, на изучение которой я потратил всю жизнь, да еще и предоставлять ее в удобоваримой, понятной для начинающих форме?".
Возможно так мы придем к тому, что только и останется официальная документация, да звери вроде Бьёрна Страуструпа, чьи книги несколько, скажем так, устарели, и неопытному читателю покажутся чуть более понятными, нежели иероглифы.
69K
23 сентября 2011 года
Пелядь
9 / / 23.09.2011
Те кто пишут книги получают за это неплохую денюжку. А просто так в этом мире никогда ничего не делается. Ну и чтобы общаться на таких форумах стоит иметь хоть какое-то представление о теме разговора...
71K
23 сентября 2011 года
Abracadavre
12 / / 23.09.2011
Прошу меня извинить за грубость, однако вы пока не показали, что имеете хоть какое-то представление о теме разговора.
Не хотите делиться информацией - не делитесь, из вас ее никто клещами не тянет. Хотите денежку за помощь "простым смертным" - идите работать в техподдержку, форум-же предполагает желание безвозмездно делиться друг с другом какими-то знаниями. Или вы видите будущее форумов том виде, когда человек задает вопрос, а ему отвечают - "Я знаю ответ. Но стоить он будет $N"? На мой взгляд это печально.
69K
23 сентября 2011 года
Пелядь
9 / / 23.09.2011
Даю вам гарантию, что никто не решит за вас вашу проблему, несмотря на что она столь незначительна))
297
24 сентября 2011 года
koodeer
1.2K / / 02.05.2009
Ну что ж, для себя я сделал следующий вывод: не помогать человеку с ником Пелядь никогда и ни в чём.
5
24 сентября 2011 года
hardcase
4.5K / / 09.08.2005
Цитата: Abracadavre
Так-то да, но уже просто интересно, как-же все-таки ее победить.


Я так и не понял логики кода :), но вам видимо нужно добавить проверку IsPostBack в Page_Load:

 
Код:
protected void Page_Load(object sender, EventArgs e)
{
  if(!IsPostBack) {
  ... ваша логика
  }
}
71K
24 сентября 2011 года
Abracadavre
12 / / 23.09.2011
О, огромное спасибо :)

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог