2010-10-14 4 views
1

Это действительно заставляет меня сходить с ума в течение нескольких часов.Кнопка была нажата дважды перед отправкой назад

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


} 

ответ

2

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

+0

Я хочу отправить данные в URL (со строкой запроса) на другой сайт, чтобы отобразить некоторую информацию в результате, используя значения строки запроса. Другой сайт недоступен для меня, я могу только отправлять данные таким образом. – Tobby

+0

Опубликовать данные на другой сайт? В этом случае вам, вероятно, нужна форма HTML и сообщение на какую-то страницу на этом сайте. –

+0

ImageButton опубликует только на ваш сайт. Или вы можете использовать HyperLink, если другая сторона принимает запрос как HTTP GET. –

2

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

Response.Redirect(theURL); 
+0

Response.Redirect просто перенаправляет, данные, необходимые arent, отправленные на целевую страницу aspx. Но он работает при нажатии 2-й кнопки. – Tobby

+0

Если данные находятся в QueryString, нет причин, по которым вы не можете использовать Response.Redirect. –

Смежные вопросы