91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

看JavaScript中怎么調用C#函數

發布時間:2021-07-07 17:24:39 來源:億速云 閱讀:171 作者:Leah 欄目:編程語言

本篇文章為大家展示了看JavaScript中怎么調用C#函數,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

關鍵代碼如下:

Default.aspx.cs    public partial class _Default : System.Web.UI.Page   {      protected void Page_Load(object sender, EventArgs e)      {          //設置 TextBox 的 OnBlur 事件被觸發時,所要調用的 JavaScript 函數          this.TextBox1.Attributes["onblur"] = "getEmployeeInfo('TextBox1', 'TextBox2', 'TextBox3');";          this.TextBox4.Attributes["onblur"] = "getProductInfo('TextBox4', 'TextBox5', 'TextBox6');";           //設置在 JavaScript 文件中,所能調用的 C# 自定義類的名稱           Ajax.Utility.RegisterTypeForAjax(typeof(MyClass01));      }  }

我們看到上方,透過 RegisterTypeForAjax 函數,可向 AJAX.NET 注冊我們寫的 C# 自定義類 MyClass01。接著 AJAX.NET 會瀏覽這個自定義類,里面標示有 AjaxMethodAttribute 的函數,如下方代碼中的 getEmployeeInfo 和 getProductInfo 函數,我們并在這兩個函數里,實際去訪問數據庫并取回需要的一或多個字段的值。

App_Code/MyClass01.cs  public class MyClass01  {      public static string strConnString = WebConfigurationManager.ConnectionStrings["ConnString_SqlClient"].ConnectionString;       //由 EmployeeID (如: 1, 2 ,3 , ...),去數據庫取出他的 LastName、Title      [Ajax.AjaxMethod()]       //告知 Ajax 封裝類,為此方法創建一個 JavaScript 代理,這樣才能被客戶端調用      public string getEmployeeInfo(string strEmployeeID)      {          string strResult = string.Empty;          string strSql = "SELECT LastName, Title FROM EMPLOYEES WHERE EmployeeID = @EmployeeID";           using (SqlConnection conn = new SqlConnection(strConnString))          {              conn.Open();              if (conn.State == ConnectionState.Open)              {                  using (SqlCommand cmd = new SqlCommand(strSql, conn))                  {                      cmd.Parameters.Add("@EmployeeID", SqlDbType.Int).Value = strEmployeeID.Trim();                       //若確定要捉的記錄只有一筆,可加上此 ADO.NET 的「SingleRow」參數,以優化性能、節省系統資源                      using (SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.SingleRow))                      {                          if (dr.Read())                          {                              strResult = dr[0].ToString() + "§" + dr[1].ToString();                          }                      }                  }              }          }           return strResult;     //strResult = "result1§result2";   //返回值為用 "§" 字符所分割的一或多個字符串      }        //由 ProductID (如: 1, 2 ,3 , ...),去數據庫取出他的 ProductName、QuantityPerUnit      [Ajax.AjaxMethod()]       //告知 Ajax 封裝類,為此方法創建一個 JavaScript 代理,這樣才能被客戶端調用      public string getProductInfo(string strProductID)      {          //...中間略...      }   } //end of class

如下,onBlur 事件被觸發時,會在 JavaScript 里調用 C# 的同名函數,并從數據庫里取得返回值。

js/MyJs01.js  //由 EmployeeID (如: 1, 2 ,3 , ...),去數據庫取出他的 LastName、Title  function getEmployeeInfo(TextBox1, TextBox2, TextBox3) {       //調用 App_Code 文件夾里,C# 自定義類的 getEmployeeInfo 函數      var response = MyClass01.getEmployeeInfo(document.getElementById(TextBox1).value);       //response 為從 C# 自定義類里的函數所傳回來的,由一或多個 "§" 字符所組成的一個字符串      if ((response.value == null) || (response.value.length == 0)) {  //若用戶輸入「不合理的字符」或「無對應數據的ID號碼」          alert('數據庫里查無數據 !');          document.getElementById(TextBox2).value = "";          document.getElementById(TextBox3).value = "";      }      else if (response.value.length > 0) {      //若數據庫里有查找到對應的數據          var strArrResult = response.value.split("§");          if (strArrResult[0].length > 0)              document.getElementById(TextBox2).value = strArrResult[0];          if (strArrResult[1].length > 0)              document.getElementById(TextBox3).value = strArrResult[1];      }  }

如下,在 web.config 里添加配置,讓所有 ajax/*.ashx 的請求,改由 Ajax.PageHandlerFactory 產生的 HTTP Handler 處理,而不再由默認的 System.Web.UI.PageHandlerFactory 處理程序工廠 [9] 來處理。

web.config  < system.web>     < httpHandlers>         < add verb="POST,GET" path="ajax/*.ashx"            type="Ajax.PageHandlerFactory, Ajax" />     < /httpHandlers> < /system.web>

上述內容就是看JavaScript中怎么調用C#函數,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鹿邑县| 长宁区| 介休市| 库车县| 元谋县| 唐河县| 江山市| 长春市| 临猗县| 轮台县| 塔河县| 怀化市| 阜阳市| 囊谦县| 姜堰市| 呼玛县| 山西省| 济宁市| 天水市| 铜川市| 广安市| 六枝特区| 同德县| 同仁县| 泊头市| 冀州市| 台北市| 九龙坡区| 金寨县| 彭阳县| 鹿泉市| 阳东县| 巴彦淖尔市| 肃宁县| 瓦房店市| 辽源市| 离岛区| 陇西县| 绵竹市| 新巴尔虎左旗| 太仆寺旗|