2014-09-12 5 views
0

В моей asp страницы у меня есть form с URL действия, которые resonds на asp button click, но теперь у меня есть вызвать onclick метод также ASP button но form action не позволила мне стрелять OnClick события. Если я удалю form action со страницы asp. Я могу запустить кнопку onclick. На самом деле я должен перенаправлять на одну страницу после того, как действие completes.My исходный код:ASP страница Форма Действие не давая ASP кнопки OnClick обжига

<form action="URL1" runat="server" method="post"> 
<asp:Button ID="Button2" Text="Submit" runat="server" OnClick="Button2_Click2" 

</form> 

C# код:

protected void Button2_Click2(object sender, EventArgs e) 
    { 

     System.Diagnostics.Debug.WriteLine("test final"); 
     Response.Redirect("http://www.url2.com/"); 
    } 
+0

Это ваша единственная форма? – Alexander

+0

никакие другие данные также есть, но это основная часть .. некоторые данные текстового поля также есть – user3226440

+0

У вас есть несколько тегов FORM? Потому что это запрещено в ASP.NET WebForms. – Alexander

ответ

0

хорошо сформировавшимися ваша форма тег? Он также должен быть «серверным», добавляя runat = «server» и id.

У вас опечатка: runnat = "сервер" должен быть RUNAT = "сервер"

+0

Извините, что это runat = "server" только с id ... – user3226440

0

вы должны использовать

<form runat="server"> 
     .. 
    </form> 

ничего больше не меньше

+0

, но я хочу, чтобы страница была перенаправлена ​​с формой action url .. – user3226440

0

Вы можете вызвать функцию Java Script на вашей клиентской стороне нажмите кнопку, например,

<asp:Button ID="Button2" UseSubmitBehavior="true" OnClientClick="javascript:return RedirectURL();" Text="Submit" runat="server" OnClick="Button2_Click2" /> 

Создать функцию JavaScript в головной секции

<script type="text/javascript"> 
     function RedirectURL() { 
      window.location = "Your URL goes here."; 
return false; 
     } 
    </script> 
+0

Пробовал это .. но не работает только одна вещь либо это, либо действие формы – user3226440

0

принять как этот

<a href="http://www.url2.com/"> 
    <asp:Label ID="lbl" runat="Server" Text="Button1"> 
</asp:Label> 
</a> 

Это может помочь вам.

+0

не работает. .. form action page работает только ... вместо метки, которую я дал кнопке – user3226440

0

Поведение ASP.NET по умолчанию заключается в том, что все содержимое элемента формы отправляется обратно в класс страницы, изначально созданный html и обслуживаемый клиентом. Это необходимое условие, чтобы обработчик события срабатывал при нажатии кнопки.

Но если вы устанавливаете значение атрибута action в элементе формы на имя другого файла, это переопределяет поведение по умолчанию, и весь контент отправляется в это новое место. Как вы можете ожидать, что ваш обработчик событий будет запущен, если он находится в другом месте, и вы не отправляете ему какие-либо данные.

Если вы установили атрибут действия элемента формы в имя файла, в котором определен обработчик нажатия события, то он обязательно срабатывает. что «Button2_Click2» определяется внутри Default.aspx.

<form action="Default.aspx" runat="server" method="post"> 

В этом контексте вам не нужен атрибут «действие».

Поэтому причиной вашей проблемы является не наличие атрибута действия, а перенаправление обратной передачи в другое место.

В конечном счете, это проблема дизайна. У меня такое чувство, что вы можете достичь своей цели, пересмотрев свое решение.

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