<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    網站開發

    asp.net
    隨筆 - 30, 文章 - 0, 評論 - 9, 引用 - 0
    數據加載中……

    asp.net2.0中使用客戶端回調實現無刷新應用!

    在asp.net1.1中我們可以通過JS調用Web服務來實現無刷新應用,現在asp.net2.0可以用Client Callback的方法實現,這樣變得更加方便和容易使用了.客戶端回調功能的實現需要兩步:
    1.為控件或頁面實現ICallbackEventHandler接口,該接口有一個方法public string RaiseCallbackEvent(string eventArgument),這個方法的原理是接收客戶端發送過來的參數,然后返回一個結果字符串給客戶端進行處理.例如:
    public partial class ShowReview_ascx : ICallbackEventHandler
    {
    ??? public string RaiseCallbackEvent(string eventArgument)
    ??? {
    ??????? int reviewId = int.Parse(eventArgument);
    ??????? Discussion discussion = AspNetCommerce.DiscussionManager.GetDiscussion(reviewId);
    ??????? StringBuilder sb = new StringBuilder();
    ??????? sb.AppendFormat("<table class='{0}>", "ShowReview_ascx_DisTable");
    ??????? foreach (DiscussionItem item in discussion)
    ??????? {
    ????????????//輸出html
    ??????? }
    ??????? sb.Append("</table>");
    ??????? return sb.ToString();
    ??? }
    }
    該方法接收客戶端的傳來的一個參數,轉換為 reviewId,根據reviewId查詢出相關數據以html形式返回給客戶端.
    2.實現兩個客戶端腳本,并使用Page.GetCallbackEventReference說明客戶端如何處理返回結果.
    例如:
    Page.GetCallbackEventReference(this, "topicid", "HandleResultFromServer", "context", "HandleErrorResultFromServer")
    this表示實現ICallbackEventHandler的控件的實例,
    topicid表示客戶端傳入的字符串參數數
    HandleResultFromServer表示處理成功調用后的結果的客戶端腳本函數名
    context表示回調的啟動方法處與處理回調結果的方法之間的傳遞參數
    HandleErrorResultFromServer表示處理失敗調用后的結果的客戶端腳本函數名
    部分客戶端腳本如:
    ??? void Page_Load(object sender, EventArgs e)
    ??? {
    ??????? if (!IsPostBack || !this.EnableViewState)
    ??????? {
    ??????????? StringBuilder sb = new StringBuilder();
    ??????????? sb.Append("function loadtree(topicid){");
    ??????????? sb.Append("var targetImg = document.all('img_'+topicid);");
    ??????????? sb.Append("var targetDiv = document.all('tr_'+topicid);");
    ??????????? sb.Append("if (targetDiv.style.display != 'block'){");
    ??????????? sb.Append("targetDiv.style.display = \"block\";");
    ??????????? sb.AppendFormat("targetImg.src = \"{0}\";", AspNetCommerce.CommerceContext.GetThemesImagePathForImgTag("ShowReview_ascx/Expand-Open.gif"));
    ??????????? sb.Append("targetImg.alt = \"點擊收回\";");
    ??????????? sb.Append("var context = topicid;");
    ??????????? sb.AppendFormat("{0}", Page.GetCallbackEventReference(this, "topicid", "HandleResultFromServer", "context", "HandleErrorResultFromServer"));
    ??????????? sb.Append("}else{");
    ??????????? sb.Append("targetDiv.style.display = \"none\";");
    ??????????? sb.AppendFormat("targetImg.src = \"{0}\";", AspNetCommerce.CommerceContext.GetThemesImagePathForImgTag("ShowReview_ascx/Expand-Closed.gif"));
    ??????????? sb.Append("targetImg.alt = \"點擊查看討論\";");
    ??????????? sb.Append("}");
    ??????????? sb.Append("}");
    ??????????? sb.Append("function HandleResultFromServer(result,context)");
    ??????????? sb.Append("{");
    ??????????? sb.Append("var targetTd = document.all('td_'+context);");
    ??????????? sb.Append("targetTd.innerHTML = result");
    ??????????? //sb.Append("alert(result);");
    ??????????? sb.Append("}");
    ??????????? sb.Append("function HandleErrorResultFromServer(result,context)");
    ??????????? sb.Append("{");
    ??????????? sb.Append("var targetTd = document.all('td_'+context);");
    ??????????? sb.AppendFormat("targetTd.innerHTML = '<font color=red>{0}</font>'",
    ??????????????? "數據讀錯誤,請重新再試或通知管理員!");
    ??????????? sb.Append("}");
    ??????????? Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "ClientCallBack", sb.ToString(), true);
    ??????? }
    ??? }

    posted on 2006-11-07 14:59 風雨兼程 閱讀(232) 評論(0)  編輯  收藏 所屬分類: Asp.net 2.0

    主站蜘蛛池模板: 亚洲熟女综合色一区二区三区| 亚洲AV中文无码字幕色三| 日韩免费无码视频一区二区三区| 182tv免费视视频线路一二三| 亚洲色成人网站WWW永久| 亚洲中文字幕无码av在线| 18禁止看的免费污网站| 亚洲精品一区二区三区四区乱码 | 久久午夜免费鲁丝片| 青青草国产免费久久久下载| 亚洲男人的天堂www| 黄色网站软件app在线观看免费| 久久久久亚洲av无码专区蜜芽| 亚洲国产欧美一区二区三区| 无码国产精品一区二区免费模式 | 中文字幕视频免费| 亚洲情侣偷拍精品| 亚洲综合色一区二区三区| 成人免费视频国产| 亚洲一区无码中文字幕乱码| 在线免费视频一区| 少妇亚洲免费精品| 国产v片免费播放| 国产免费久久精品丫丫| 亚洲综合小说久久另类区| 好大好硬好爽免费视频| 国产精品免费久久| 亚洲国产成人久久综合区| 亚洲日韩一区二区一无码| 亚洲AV无码乱码在线观看| 久久精品免费电影| 色在线亚洲视频www| 国产亚洲精品无码拍拍拍色欲| 一级毛片免费观看不卡视频| 亚洲综合在线一区二区三区| 亚洲日本中文字幕天堂网| 免费无码AV一区二区| 久久久久亚洲AV无码网站| 在线视频免费国产成人| 99久久99热精品免费观看国产| 日本亚洲中午字幕乱码|