.net2.0客户端回调实现 (C#) 示例

转载 2006年06月05日 18:39:00

照搬MSDN2005的代码实现无刷回调,老是提示:
错误1“ClientCallback”不会实现接口成员“System.Web.UI.ICallbackEventHandler.RaiseCallbackEvent(string)”。“ClientCallback.RaiseCallbackEvent(string)”或者是静态、非公共的,或者有错误的返回类型。
错误2“ClientCallback”不会实现接口成员“System.Web.UI.ICallbackEventHandler.GetCallbackResult()”

<%@ Page Language="C#" AutoEventWireup="true"
  CodeFile="ClientCallback.aspx.cs" Inherits="ClientCallback" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML
  1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
  <script type="text/javascript">
    function LookUpStock()
    {
        var lb = document.forms[0].ListBox1;
        var product = lb.options[lb.selectedIndex].text
        CallServer(product, "");
    }
   
    function ReceiveServerData(rValue)
    {
        Results.innerText = rValue;
    }
  </script>
</head>
<body>
  <form id="form1" runat="server">
    <div>
      <asp:ListBox ID="ListBox1" Runat="server"></asp:ListBox>
      <br />
      <br />
      <button onclick="LookUpStock()">Look Up Stock</button>
      <br />
      <br />
      Items in stock: <span ID="Results"></span>
      <br />
    </div>
  </form>
</body>
</html>

// ClientCallback.aspx.cs code-behind page
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class ClientCallback : System.Web.UI.Page,
     System.Web.UI.ICallbackEventHandler
{
    protected System.Collections.Specialized.ListDictionary catalog;
    protected void Page_Load(object sender, EventArgs e)
    {
        String cbReference =
            Page.ClientScript.GetCallbackEventReference(this,
            "arg", "ReceiveServerData", "context");
        String callbackScript;
        callbackScript = "function CallServer(arg, context)" +
            "{ " + cbReference + "} ;";
        Page.ClientScript.RegisterClientScriptBlock(this.GetType(),
            "CallServer", callbackScript, true);

        catalog = new System.Collections.Specialized.ListDictionary();
        catalog.Add("monitor", 12);
        catalog.Add("laptop", 10);
        catalog.Add("keyboard", 23);
        catalog.Add("mouse", 17);

        ListBox1.DataSource = catalog;
        ListBox1.DataTextField = "key";
        ListBox1.DataBind();
    }

    public String RaiseCallbackEvent(String eventArgument)
    {
        String returnValue;
        if (catalog[eventArgument] == null)
        {
            returnValue = "-1";
        }
        else
        {
            returnValue = catalog[eventArgument].ToString();
        }
        return returnValue;
    }
}

更改后的

//////////////////////////////

    public String RaiseCallbackEvent(String eventArgument)
    {
        String returnValue;
        if (catalog[eventArgument] == null)
        {
            returnValue = "-1";
        }
        else
        {
            returnValue = catalog[eventArgument].ToString();
        }
        return returnValue;
    }

//////////////////////////////

改成如下:

    string earg = "";

    #region ICallbackEventHandler 成员

    public string GetCallbackResult()
    {
        String returnValue;
        if (catalog[earg] == null)
        {
            returnValue = "-1";
        }
        else
        {
            returnValue = catalog[earg].ToString();
        }
        return returnValue;
    }

    public void RaiseCallbackEvent(string eventArgument)
    {
        //throw new Exception("The method or operation is not implemented.");
        earg = eventArgument;
    }

    #endregion

 

可以体验到了回调的感觉了。。。。。。。。。。。。

客户端回调实现 (C#) 示例

 演示实现客户端回调的 ASP.NET 网页说明下面的代码示例分为两部分。示例的第一部分演示一个 ASP.NET 网页(.aspx 页)。第二部分演示相应的代码隐藏文件(.aspx.cs 文件)。 %...
  • zzhdi
  • zzhdi
  • 2008年04月20日 16:22
  • 384

客户端回调实现 (C#) 示例

%@ Page Language="C#" AutoEventWireup="true"   CodeFile="ClientCallback.aspx.cs" Inherits="ClientCal...
  • lauka
  • lauka
  • 2008年10月13日 10:45
  • 167

ASP.NET 客户端回调实现 (C#) 示例

ASP.NET  客户端回调实现 (C#) 示例   演示实现客户端回调的 ASP.NET 网页。有关更多信息,请参见在 ASP.NET 网页中不经过回发而实现客户端回调。示例说明下面的代码示例分为两...
  • jiaona110
  • jiaona110
  • 2006年10月09日 15:26
  • 718

C#中delegate实现回调函数示例

#region C#中delegate实现回调函数示例         delegate void CallBackFun(string msg);         private static vo...
  • cstarbl
  • cstarbl
  • 2014年01月16日 14:32
  • 2092

.net2.0怎么无法安装?

.net2.0怎么无法安装?
  • luopeixin
  • luopeixin
  • 2005年04月26日 23:25
  • 928

C#实现接口回调

通常情况下,我们创建一个对象,并马上直接去使用它的方法。然而,在有些情况下,希望能在某个场景出现后或条件满足时才调用此对象的方法。回调就可以解决这个“延迟调用对象方法”的问题。这个被调用方法的对象称为...
  • u013108312
  • u013108312
  • 2016年08月31日 12:37
  • 2415

C#使用接口实现回调

金旭亮老师图书摘录  通常情况下,我们创建一个对象,并马上直接去使用它的方法。然而,在有些情况下,希望能在某个场景出现后或条件满足时才调用此对象的方法。回调就可以解决这个“延迟调用对象方法”的问题。这...
  • cleron800
  • cleron800
  • 2007年12月20日 10:29
  • 1144

C#中稳定的socket收发实现:agsxmpp的ClientSocket实现

在xmpp协议中规定 从客户端到服务器端的通讯方式是一个持续的tcp连接或者是http的polling,后者作为备选,一般也是使用前者。socket编程可简可难,可好可烂。在C#中,因为CLR维持了工...
  • wineceramic
  • wineceramic
  • 2006年04月16日 09:43
  • 6324

ASP.NET 客户端回调实现 (C#) 示例 (VS2005)MSDN 错误处理

 最近研究了一下ASP.NET  客户端回调,在MSDN上找到了这个示例:
  • xtBurn
  • xtBurn
  • 2008年11月25日 17:11
  • 529

客户端回调服务器端事件

在 ASP.NET 网页的默认模型中,单击按钮或执行导致回发的一些其他操作。此时将重新创建页及其控件,并在服务器上运行页代码,然后返回给浏览器,并呈现出来。但是,在有些情况下,需要从客户端运行服务器代...
  • a282421083
  • a282421083
  • 2010年09月10日 12:13
  • 1851
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:.net2.0客户端回调实现 (C#) 示例
举报原因:
原因补充:

(最多只允许输入30个字)