Кнопка нажата дважды перед постбэком - PullRequest
1 голос
/ 14 октября 2010

Это действительно сводит меня с ума, когда я нахожусь на нем часами.

У меня есть URL-адрес, строки запроса которого объединены на основе выбранных элементов в форме, мне нужно сделать сообщение по этому URL-адресу, но для появления сообщения необходимо щелкнуть элемент управления imagebutton. Я поместил свойство PostBackUrl кнопки image в событие кнопки изображения, поэтому дважды щелкнул по нему, прежде чем опубликовать URL-адрес ... но мне действительно нужно щелкнуть один раз, но это не работает. Я знаю, почему он щелкнул дважды, пытался вызвать URL с помощью JavaScript, но он не работал.

Ниже приведен код. Пожалуйста, помогите мне с примерами кода, потому что я все еще новичок, вроде. Спасибо

protected void searchImageButton_Click(object sender, ImageClickEventArgs e)
{
    returntype = tidRadioButtonList.SelectedItem.Value;

    dateDlabel = selddate1TextBox.Text.Trim();
    dateAlabel = seladate1TextBox.Text.Trim();

    depart = seldcity1DropDownList.SelectedItem.Value;
    arrive = selacity1DropDownList.SelectedItem.Value;

    flightclass = selcabinclassDropDownList.SelectedItem.Value;

    adult = seladultsDropDownList.SelectedItem.Text;
    child = selchildrenDropDownList.SelectedItem.Text;
    infant = selinfantsDropDownList.SelectedItem.Text;

    result = resultbyRadioButtonList.SelectedItem.Value;

    promos = promocodeTextBox.Text.Trim();


    string theURL = "http://yyy.xxx.com/CAB/SessionHandler.aspx?target=%2fCAB%2fIBE.aspx&pub=%2fng%2fEnglish&Tab=1&s=&h=?tid=" + returntype +
     "&seldcity1=" + depart.Trim() + "&selddate1=" + dateDlabel + "&selacity1=" + arrive.Trim() + "&seladate1=" + dateAlabel + "&selcabinclass=" + flightclass
      + "&seladults=" + adult + "&selchildren=" + child + "&selinfants=" + infant + "&resultby=" + result + "&promocode=" + promos;

    searchImageButton.PostBackUrl = theURL;


}

Ответы [ 2 ]

2 голосов
/ 15 октября 2010

Так как вам нужно отправить обратно на другой URL, почему бы не использовать

Response.Redirect(theURL);
2 голосов
/ 14 октября 2010

Но вы говорите, что ASP.NET вызывает обратную передачу дважды. PostBackUrl - это специальное свойство для обратной передачи между страницами, но если вы установите его на одну и ту же страницу, вы получите обратную передачу дважды. Первая обратная передача - это обычная обработка, которая происходит потому, что пользователь нажимает кнопку ImageButton. Второе инициируется, потому что вы настроили PostBackUrl. Для вашего сценария вы не можете использовать ImageButton. Используйте HyperLink и поместите img внутри ссылки. Btw. что вы пытаетесь достичь с помощью этого кода?

...