2017-02-02 3 views
0

私はいくつかのコントロールでポップアップエクステンダーを動的に作成しています。 1つのコントロールは、 "onclick"属性を持ち、JavaScriptメソッドを呼び出すボタンでなければなりません。私はPopup-Extenderを作成しています。それは "SiteMaster.vb"のコントロールです。ボタンの属性 "onclick"は、 "modalpopup.show"メソッドを呼び出すボタンの "click-Event"に設定されます。私のブラウザから開発者ツールで見ることができる、作成されたhtmlコードは次のとおりです:ASP.net:ajax javascriptからWebメソッドを呼び出す。 [vb.net]

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

私の意見では、これまでのところすべてがうまく見えます。私はWebMethod属性を書かれているDefault.aspx.vbで

<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> 

:私は、JavaScriptのメソッドは、Site.Masterのソースに「提出」書かれている

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機能は呼び出されず、フォームが直接送信されます。だからではなく、これのこれは私がmodalpopup.showを呼び出すボタンイベントである

+0

問題は、私はvb.netで新しいボタンを作成します。コードの背後にある。どのように私はタイプ= "ボタン"を変更するのですか...入力タイプ= "提出"ビービジュアルスタジオ... –

+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 

JavaScript機能を呼び出すために使用type="button"を変更してください。メソッドLoad Container_LoadControlsでボタンが生成されています。後で私は属性onklickを追加します

+0

このボタンをクリックすると、ポップアップが消える... @hdkhardik –

+0

このような属性を追加する c3po1.Attributes.Add(" OnClientClick "、" submit(); ") – hdkhardik

+0

ポップアップが消えてしまう: )警告はまだ表示されていません。 –

0

Javascript-Method "submit"は、ButtonClick() - Eventで作成されていないボタンから呼び出すことができます。誰かが解決策を持っていますか?

関連する問題