Кнопка нажата дважды перед обратной передачей

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

У меня есть URL-адрес, строки запроса которого объединены на основе выбранных элементов в форме, мне нужно опубликовать сообщение по этому URL-адресу, но для публикации сообщения необходимо щелкнуть элемент управления imagebutton. Я поместил свойство PostBackUrl кнопки изображения внутри события кнопки изображения, поэтому его дважды щелкнули, прежде чем в конечном итоге опубликовать 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;


}

person Tobby    schedule 14.10.2010    source источник


Ответы (2)


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

person Ladislav Mrnka    schedule 14.10.2010
comment
Я хочу опубликовать данные в URL-адресе (со строкой запроса) на другом сайте, чтобы в результате отобразить некоторую информацию, используя значения строки запроса. Другой сайт для меня недоступен, я могу только отправлять данные таким образом. - person Tobby; 15.10.2010
comment
Разместить данные на другом сайте? В этом случае вам, вероятно, понадобится HTML-форма и публикация на какой-либо странице этого сайта. - person Ladislav Mrnka; 15.10.2010
comment
ImageButton будет размещать сообщения только на вашем сайте. Или вы можете использовать HyperLink, если другая сторона принимает запрос как HTTP GET. - person Ladislav Mrnka; 15.10.2010

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

Response.Redirect(theURL);
person Bisolu Adekoya    schedule 15.10.2010
comment
Response.Redirect просто перенаправляет, необходимые данные не публикуются на целевой странице aspx. Но это работает на втором нажатии кнопки. - person Tobby; 15.10.2010
comment
Если данные находятся в QueryString, нет никаких причин, по которым вы не можете использовать Response.Redirect. - person Jason Berkan; 15.10.2010