2013-07-26 99 views
-2

我想在輸入文本框中的某些內容時從aspx代碼調用C#函數。如何在文本框的關鍵事件中從aspx代碼調用C#函數?從aspx代碼調用C#函數

+0

使得Ajax調用,調用C#函數,你想要什麼 –

+0

@alwaysrelax:你能爲我提供一個例子代碼,因爲我從來沒有使用它,我不知道的語法 – Ankur

回答

2

做好一鍵按下事件

private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) 
{ 
    Function1(); 
} 

功能

private void Function1() 
{ 
} 
+0

我正在使用Web應用程序而不是Windows應用程序。我在Web應用程序中發現文字冒險。 – Ankur

0

嘗試jQuery的AJAX -

var ListPostalCode = ["12345"]; 
var PostalCodeJsonText = JSON.stringify({ list: ListPostalCode }); 
     $.ajax({ 
       type: "POST", 
       url: "JobManagement.aspx/FindLocation", 
       data: PostalCodeJsonText, 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (response) {    
       alert(response.d); 
       }, 
       failure: function (response) { 
        alert(response.d);     
       } 
      }); 

C#的WebMethod -

[System.Web.Services.WebMethod()] 
     public static string FindLocation(List<string> list) 
     {    
      try{ 
      string LocationInfo = ""; 
      HttpWebRequest FindLocationreq = (HttpWebRequest)WebRequest.Create("http://ziptasticapi.com/" + list[0]); 
      FindLocationreq.Method = "GET"; 
      using (WebResponse Statusresponse = FindLocationreq.GetResponse()) 
      { 
       using (StreamReader rd = new StreamReader(Statusresponse.GetResponseStream())) 
       { 
        LocationInfo = rd.ReadToEnd(); 
       } 
      } 
      return LocationInfo; 
      } 
      catch (Exception ex) 
      { 
       return ex.Message; 
      } 
     } 

Reference 1

Reference 2

Reference 3

0

嘗試這樣

<asp:TextBox ID="TextBox1" clientidmode="Static" runat="server" onkeypress="return EnterEvent(event)"></asp:TextBox> 

JS:

function EnterEvent(e) { 
     if (e.keyCode == 13) {//if enter key is pressed condition 
      __doPostBack('<%=Button1.UniqueId%>', ""); 
     } 
    } 

C#:

protected void Button1_Click(object sender, EventArgs e) 
    { 

    } 
+0

如果我在網格中搜索一些記錄,並在文本框中鍵入USA,我將如何處理。我每次都必須檢查ascii密鑰嗎?我會給你一個鏈接,讓你看看我想要複製的是什麼。 http://theme.eakroko.de/flat這是鏈接,然後去鏈接從頂部菜單得到大表,並去\t動態AJAX加載(2500條目) 網格和搜索一些關鍵詞。 – Ankur

+0

哦,這是自動完成...因爲你需要使用webservice –

+0

Betril:你有這個代碼..? – Ankur

0
$("#target").keypress(function() { 
    var value=$("#target").val(); 
    $.ajax({ 
    type: "POST", 
    url: "../Webservices/yourwebservice.asmx/webmethodName", 
    data: "{value: " + value + "}", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function(result) { 
     alert(result.d); 
    } 
    ); 
    }); 

您可以撥打電話到您的webmethod這樣的關鍵press.thanks

0

這裏有一種方法:

ASPX:

<asp:TextBox ID="MyTextBox" ClientIDMode="Static" runat="server" /> 

JS:

$(function() { 
    $('#MyTextBox').keyup(function() { 
     var jsonObj = { c: $(this).val() }; 
     $.ajax({ 
      type: 'POST', 
      url: 'webservice.aspx/MyCSharpFunction', 
      data: JSON.stringify(jsonObj), 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function(data) { 
       alert(data); 
      } 
     }); 
    }); 

}); 

C#(在這個例子中webservice.aspx):上下來的關鍵事件

public partial class webservice : System.Web.UI.Page 
{ 
    [WebMethod] 
    public static string MyCSharpFunction(string c) 
    { 
     return "You typed " + c; 
    } 

} 
+0

如何使用上述方法填充不同形式的網格? – Ankur