2015-11-07 60 views
0

我在窗體標記中調用onclick,onmousemove和onkeypress事件的函數,並且該函數在代碼後面,但當用戶單擊,按下某個鍵並移動鼠標時該方法未執行在form1上。該代碼是:在不使用javascript的情況下調用代碼中的函數

<form id="form1" runat="server" onclick="idletime()" onkeypress="idletime()" onmousemove="idletime()"> 

cs文件:

protected void idletime(object sender, EventArgs e) 
{ 
    Response.Write("hello."); 
} 
+0

兩個問題在這裏:1.你是使用JavaScript:這是你在這些事件處理程序使用的是什麼屬性('onclick' ...)。 2.您不能直接從JavaScript調用服務器端(C#)代碼:所有內容都必須通過HTTP請求(如果不使用幫助程序庫 - 我建議您 - 您需要編寫腳本「XmlHttpRequest」來調用您的專用入口點服務器 – Richard

+0

可以通過代碼來解釋它 –

+0

不容易在[SO]問題的範圍內(而WinForms使它對我來說更加複雜:但它有自己的方法)查找WinForms AJAX教程 – Richard

回答

0

您可以使用Ajax來做到這一點。我正在寫一些粗略的示例代碼。希望它可以幫助。

<form id="form1" runat="server" onclick="idletime()" onkeypress="idletime()" onmousemove="idletime()"> 



<script> 

function idletime() { 

      $.ajax({ 
       type: "POST", 
       url: "demo.aspx/functionName1", 
       data: "{parameter1:'" + param1 "',parameter2:'" + param2 + "'}", 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (msg) { 
        alert(msg.d); 
       } 
      }); 
     } 


</script> 

C#代碼

using System.Web.Services; --- use this class 

    [WebMethod] 
     public static string functionName1(string parameter1, string parameter2) 
     { 

      ------------------------------; 
      return "Demo"; 
     } 
+0

我試過了那麼,但是我怎樣才能訪問在這個方法之外聲明的變量和方法 –

+0

你可以聲明變量和方法爲靜態的,你想用於webservices。因爲webservice被聲明爲靜態的。 –

相關問題