<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      WizardWu 編程網

      一位臺灣的工程師,接觸 .NET 逾十年,近年研究 SQL Server、Performance Tuning、手機應用

      博客園 首頁 新隨筆 聯系 訂閱 管理

      本帖并無高來高去的高深技術,但提供一個做 ASP.NET 項目時,很實用的 Ajax 示例下載。透過 AJAX.NET 的功能,改善舊式 Callback 寫法的缺點,讓用戶在一或多個 TextBox 輸入完查找條件、鼠標離開并觸發 onBlur 事件時,透過 JavaScript 調用 C# 自定義類的函數,實現高速訪問數據庫、查找對應多個字段的值。

      之前我曾寫了一篇「用 ASP.NET Callback 和 JavaScript 高速訪問數據庫」,并提供示例下載,內容是用 Callback 異步調用技術 (ASP.NET AJAX 還沒出現前,微軟提供的過渡技術),讓 Client-side (JavaScript) 能和 Server-side (.NET CLR) 直接溝通,讓用戶在 TextBox 失去焦點、觸發 onBlur 事件時,能透過 C# 自定義類的函數,以相當高的效率訪問數據庫并返回值。但該示例有兩個缺點:

      • 只能透過固定單一個內附的 RaiseCallbackEvent 函數,去訪問數據庫。當頁面上有多個 TextBox 同時要實現相同功能時,程序撰寫上會很困難。
      • 無法透過 try-catch-finally block 捕捉錯誤信息。當發生錯誤時,也無法提供相關信息給用戶或程序員。

       

      因為在 ASP.NET 項目中常會用到此一功能,因此日前我用 AJAX.NET 這套 free library 重寫了一個示例 (相關的 dll 已內附), 下載地址及功能如下:

      -------------------------------------------------
      本帖的示例代碼下載點:
      https://files.cnblogs.com/WizardWu/090828.zip

      (執行本示例,需要 SQL Server 的 Northwind 數據庫,以及 VS 2008 或 IIS)
      -------------------------------------------------

      此示例功能:

      • 如下圖 1,在第一個 TextBox1 輸入 EmployeeID,鼠標離開 TextBox1 失去焦點、觸發 onBlur 事件時,會自動高速訪問數據庫,取得該筆記錄的另外兩個字段,顯示在下方的兩個 TextBox 中。
      • 如下圖 2,當用戶輸入不合理的 EmployeeID 時,會提示錯誤信息,并清空另外兩個 TextBox 里既有的文字。
      • 當用戶輸入不存在于數據表 Employees 的 EmployeeID 時,會提示錯誤信息,并清空另外兩個 TextBox 里既有的文字。
      • 當用戶手動清空 TextBox1,鼠標離開 TextBox1 失去焦點、觸發 onBlur 事件時,會清空另外兩個 TextBox 里既有的文字。

       


      圖 1 網站項目中常用到的功能。以本示例的做法,不論網頁上有多少個 TextBox 需要此功能,都不會相互干擾

       


      圖 2 輸入不合理或錯誤類型的 EmployeeID,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

       

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

      js/MyJs01.js

       

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

      web.config

       


      因為此一需求我在 ASP.NET 項目常遇到,因此特地整理成一篇文章。若有網友知道 ASP.NET AJAX 3.5 有更好的做法,亦請留言告知。

       

      --------------------------------------------------

      相關文章:

      [1] AJAX.NET 用戶開發指南, 程守華 譯, 原出處:博客園
      http://dev.yesky.com/msdn/398/2307398.shtml

      [2] AJAX .Net Wrapper usage guide (Ajax.dll 下載內附 Word 文件)
      http://ajax.schwarz-interactive.de/download/ajax.zip

      [3] Ajax.Utility.RegisterTypeForAjax(typeof(Chat))
      http://forums.asp.net/p/1178313/1990148.aspx

      [4] AJAX.NET 安裝配置全指南
      http://developer.51cto.com/art/200908/142497.htm
      http://developer.51cto.com/art/200601/16545.htm

      [5] 在 vs 2005 中使用 ajax.dll
      http://maybe723.javaeye.com/blog/87341

      [6] 在asp.net 1.1中運用AjaxPro簡要步驟
      http://www.rzrgm.cn/wlb854/archive/2006/10/08/523143.html

      [7] ASP.NET ajax.dll ajaxmethod 使用技巧總結
      http://and114.blog.hexun.com/34187290_d.html

      [8] Ajax 實現無刷新三聯動下拉框 - 小山 - 博客園
      http://singlepine.cnblogs.com/articles/257954.html

      [9] PageHandlerFactory 類 (msdn)
      http://msdn.microsoft.com/zh-cn/library/system.web.ui.pagehandlerfactory(VS.80).aspx

      --------------------------------------------------

      posted on 2009-08-28 23:52  WizardWu  閱讀(5703)  評論(25)    收藏  舉報
      主站蜘蛛池模板: 亚洲人成小说网站色在线 | 不卡无码人妻一区三区音频| 亚洲AV日韩AV综合在线观看| 四虎永久精品在线视频| 国产精品一区二区日韩精品| 中文日韩在线一区二区| 天天澡日日澡狠狠欧美老妇| 亚洲顶级裸体av片| 少妇久久久被弄到高潮| 高清一区二区三区不卡视频| 开心一区二区三区激情| 图片区 小说区 区 亚洲五月 | 狠狠色婷婷久久综合频道日韩 | 国产精品无码无片在线观看3d| 精品偷拍一区二区三区在| 手机看片AV永久免费| 久爱www人成免费网站| 国产偷国产偷亚洲高清人| 国产乱人伦偷精品视频下| 五常市| 粉嫩一区二区三区国产精品| 国产精品久久蜜臀av| 久九九精品免费视频| 午夜福利影院不卡影院| 亚洲第一香蕉视频啪啪爽| 日韩永久永久永久黄色大片| 天堂а√8在线最新版在线| 国产国产久热这里只有精品| 国产一区二区黄色激情片| 高清破外女出血AV毛片| 美乳丰满人妻无码视频| 国产女人看国产在线女人| 国产亚洲精品97在线视频一| 日韩精品人妻av一区二区三区| 不卡一区二区国产精品| 亚洲情A成黄在线观看动漫尤物| 成人欧美日韩一区二区三区| 国产一区二区三区不卡视频| 精品一区二区三区四区激情| h无码精品动漫在线观看| 狂躁女人双腿流白色液体|