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

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

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

    隨筆 - 30, 文章 - 0, 評論 - 9, 引用 - 0
    數(shù)據(jù)加載中……

    asp.net2.0中使用客戶端回調實現(xiàn)無刷新應用!

    在asp.net1.1中我們可以通過JS調用Web服務來實現(xiàn)無刷新應用,現(xiàn)在asp.net2.0可以用Client Callback的方法實現(xiàn),這樣變得更加方便和容易使用了.客戶端回調功能的實現(xiàn)需要兩步:
    1.為控件或頁面實現(xiàn)ICallbackEventHandler接口,該接口有一個方法public string RaiseCallbackEvent(string eventArgument),這個方法的原理是接收客戶端發(fā)送過來的參數(shù),然后返回一個結果字符串給客戶端進行處理.例如:
    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();
    ??? }
    }
    該方法接收客戶端的傳來的一個參數(shù),轉換為 reviewId,根據(jù)reviewId查詢出相關數(shù)據(jù)以html形式返回給客戶端.
    2.實現(xiàn)兩個客戶端腳本,并使用Page.GetCallbackEventReference說明客戶端如何處理返回結果.
    例如:
    Page.GetCallbackEventReference(this, "topicid", "HandleResultFromServer", "context", "HandleErrorResultFromServer")
    this表示實現(xiàn)ICallbackEventHandler的控件的實例,
    topicid表示客戶端傳入的字符串參數(shù)數(shù)
    HandleResultFromServer表示處理成功調用后的結果的客戶端腳本函數(shù)名
    context表示回調的啟動方法處與處理回調結果的方法之間的傳遞參數(shù)
    HandleErrorResultFromServer表示處理失敗調用后的結果的客戶端腳本函數(shù)名
    部分客戶端腳本如:
    ??? 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>'",
    ??????????????? "數(shù)據(jù)讀錯誤,請重新再試或通知管理員!");
    ??????????? sb.Append("}");
    ??????????? Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "ClientCallBack", sb.ToString(), true);
    ??????? }
    ??? }

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

    主站蜘蛛池模板: 亚洲欧美第一成人网站7777| 久久精品国产亚洲av麻豆小说| 亚洲一区二区三区高清在线观看| 最近免费中文字幕mv在线电影| 久久亚洲国产成人精品性色| 最近2018中文字幕免费视频 | 少妇性饥渴无码A区免费| 亚洲精品线路一在线观看| 免费国产va视频永久在线观看| 亚洲人成网站色在线入口| 国产99久久久久久免费看| 亚洲AV永久青草无码精品| 久久99热精品免费观看牛牛| 亚洲日本在线看片| 成人免费大片免费观看网站| 亚洲综合一区国产精品| 亚洲国产精品不卡毛片a在线| 亚洲免费视频一区二区三区| 亚洲精品在线观看视频| 日韩版码免费福利视频| 色九月亚洲综合网| 久久亚洲精品无码观看不卡| 四虎影视成人永久免费观看视频| 亚洲剧场午夜在线观看| 国产精品免费电影| 在线观看免费无码视频| 亚洲国产成人久久99精品| 国产婷婷高清在线观看免费| 国产精品永久免费| 亚洲欧洲国产精品久久| 免费在线观看黄色毛片| 久久免费国产视频| 自拍偷自拍亚洲精品播放| 国产成人无码综合亚洲日韩| 丁香花在线观看免费观看| 一个人看的www在线免费视频| 久久综合亚洲色HEZYO社区| 国产99视频精品免费视频7| 无码日韩精品一区二区免费暖暖| 亚洲精华国产精华精华液好用| 国产亚洲午夜高清国产拍精品|