首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 中的自定義腳本回調

     編輯:關於ASP.NET

ICallbackEventHandler 與 ICallbackContainer:賦予控件無刷新伺服器互動能力

回調機制優勢

  • 無整頁 PostBack,用戶體驗流暢。
  • GridView 分頁/排序即採此機制:背景下載資料,JS 更新視圖。
  • 按需下載資料,非一次性傳送全量資料至客戶端。

兩大介面

介面方法職責
ICallbackEventHandlerRaiseCallbackEvent(string eventArgument)伺服器端處理回調邏輯,回傳結果字串
GetCallbackResult()回傳給客戶端的最終字串
ICallbackContainerGetCallbackScript(IButtonControl, string)產生觸發回調的客戶端 JS 調用代碼

自訂回調控件範例:CallbackValidator

public class CallbackValidator : WebControl, INamingContainer, ICallbackContainer, ICallbackEventHandler
{
    // ICallbackEventHandler
    public void RaiseCallbackEvent(string eventArgument) { /* 驗證邏輯 */ }
    public string GetCallbackResult() { return validationResultJson; }

    // ICallbackContainer
    public string GetCallbackScript(IButtonControl buttonControl, string argument)
    {
        return Page.ClientScript.GetCallbackEventReference(this, argument, "ReceiveServerData", "context");
    }
}

客戶端配合

function ReceiveServerData(result, context) { /* 解析 JSON 更新 UI */ }
<input type="button" onclick="<%= callbackValidator.GetCallbackScript(...) %>" />

關鍵點

  • 控件必須實作 雙介面,頁面亦可僅實作 ICallbackEventHandler。
  • GetCallbackEventReference 產生標準回調調用,包含引數、回呼函數名、context。
  • 回調生命週期較完整 PostBack 短,不觸發完整頁面事件。

掌握此模式,即可開發如「即時驗證」、「增量載入」、「即時搜尋建議」等豐富互動控件。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved