2017-02-02 4 views
0

Я динамически создаю Popup-Extender с некоторыми элементами управления. Один элемент управления - это кнопка, которая имеет атрибут «onclick» и должна вызывать метод JavaScript. Я создаю Popup-Extender и его элементы управления в «SiteMaster.vb». атрибут «onclick» кнопки устанавливается в «click-Event» кнопки, которая вызывает метод modalpopup.show. Созданный HTML-код, который я могу видеть, с разработчиком инструмента из моего браузера:ASP.net: вызов веб-метода из javascript ajax. [vb.net]

<input type="submit" name="ctl00$button_buttontestfooter_50_0_0" value="test" onclick="submit();" id="button_buttontestfooter_50_0_0" runat="server"> 

На мой взгляд, все выглядит нормально до сих пор. Я написал метод JavaScript «представить» в источник Site.Master:

<head runat="server"> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
<title></title> 
<link href="~/Styles/Site.css" rel="stylesheet" type="text/css" /> 
<asp:ContentPlaceHolder ID="HeadContent" runat="server"> 
</asp:ContentPlaceHolder> 
<script type="text/javascript"> 
    function submit() { 
     alert("blaaaaa"); 
     console.log("jijijij"); 
     window.open("http://www.google.de"); 
     var dataValue = "{'name': 'Niklas'}"; 
     $.ajax({ 
      type: 'POST', 
      url: "http://localhost:53470/GetCurrentTime", 
      data: dataValue, 
      contentType: 'application/json', 
      dataType:'json', 
      error: function (a, b, c) { 
       console.log("jijijij") 
       alert(a + ":" + b + "::::" + c); 
      }, 
      success: function (data) { 
       console.log("hallo"); 
       alert("" + data); 
      } 
     }); 
    } 
</script> 
</head> 

В Default.aspx.vb я написал WebMethod:

Public Class _Default 
Inherits System.Web.UI.Page 

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 

End Sub 
<System.Web.Services.WebMethod()> 
Public Shared Function GetCurrentTime(ByVal name As String) As String 
    Return name 
End Function 

Но у меня есть ощущение, что JavaScript метод никогда не вызывается, потому что я не вижу этого в журналах в консоли браузера, поскольку я поместил метод console.log() в функцию JavaScript, которая вызывается.

+0

'contentType: 'application/jason'' должно быть' contentType:' application/json'' и – Curiousdev

+0

'contentType: 'application/json'' и' dataType:' json'' должно быть там – Hemal

ответ

0

Тип ввода, который вы использовали, - submit, поэтому, как только вы нажмете эту кнопку, он не будет вызывать функцию javascript и будет напрямую отправлять форму. Таким образом, вместо этого, пожалуйста, изменить использование type="button" вызвать функцию JavaScript

+0

Проблема заключается в том, , я создаю новую кнопку с vb.net. в коде позади. так как я могу изменить тип = «Button» ... input type = «submit» создается visual visual studio ... –

+0

Можете ли вы показать мне код, который генерирует эту кнопку? лучше, если вы также укажете код .aspx – hdkhardik

+0

Когда я нажимаю эту кнопку, всплывающее окно исчезает ... @hdkhardik –

0
Private Sub ButtonClick(sender As Object, e As EventArgs) 
    Dim LayoutDef As ASPGlobalHandling.LayoutDefinition = p.Layout_Load("sessionitem_layouts", 0, "footer", "", False) 
    ctrl.Container_LoadControls(updPnlContent.ContentTemplateContainer, 0, LayoutDef.Layout, "", 0) 
    Dim c3po As Control = p.Container_FindControl(updPnlContent, "button_buttontestfooter_50_0_0") 
    If TypeOf (c3po) Is Button Then 
     Beep() 
     Dim c3po1 As Button = CType(c3po, Button) 
     c3po1.Text = "test" 
     c3po1.Attributes.Add("OnClientClick", "submit();") 
    End If 
    modalPopUp.Show() 
End Sub 

Это событие кнопки, где я называю modalpopup.show. в методе load Load Container_LoadControls генерируется кнопка. позже я добавлю атрибут onklick

+0

Когда я нажимаю эту кнопку, всплывающее окно исчезает ... @hdkhardik –

+0

добавить атрибут следующим образом: c3po1.Attributes.Add (« OnClientClick »,« submit(); ») – hdkhardik

+0

всплывающее окно не исчезает сейчас:), но предупреждение пока не отображается. –

0

Я только что увидел, что Javascript-Method «submit» можно вызвать с помощью кнопок, которые не созданы в ButtonClick() - Событии. У кого-то есть решение?

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