CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

asp.net实现无刷新回调错误

楼主zhupan(天涯)2006-06-01 14:31:58 在 .NET技术 / ASP.NET 提问

我参照MSDN例子,为什么会出错,提示为  
  错误 1 “ClientCallback”不会实现接口成员“System.Web.UI.ICallbackEventHandler.RaiseCallbackEvent(string)”。“ClientCallback.RaiseCallbackEvent(string)”或者是静态、非公共的,或者有错误的返回类型。 c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary   ASP.NET   Files\asysite\da5fa3f8\642075c6\App_Web_rp68m6mz.0.cs  
   
  错误 2 “ClientCallback”不会实现接口成员“System.Web.UI.ICallbackEventHandler.GetCallbackResult()” c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary   ASP.NET   Files\asysite\da5fa3f8\642075c6\App_Web_rp68m6mz.0.cs  
   
  接口实现有问题,请问是什么原因啊 问题点数:15、回复次数:4Top

1 楼peng_0_0_1983(这头猪很瘦)回复于 2006-06-01 14:53:59 得分 0

你是2003还是2005?  
  2003使用ajax.dll   实现ajax技术的话,目前不支持全部返回类型。  
  2005使用atlas的话,就应高没啥问题。Top

2 楼zhupan(天涯)回复于 2006-06-01 14:58:25 得分 0

2005,原则是不用ATLAS的,它自身就有无刷新功能的,只是操作出错,不知原因Top

3 楼wolfofsky(风之武)回复于 2006-06-01 15:17:14 得分 15

MSDN的例子有错误,接口方法已改变。给个例子  
  <%@   Page   Language="C#"   EnableViewState="false"%>  
   
  <%@   Implements   Interface="System.Web.UI.ICallbackEventHandler"   %>  
  <!DOCTYPE   html   PUBLIC   "-//W3C//DTD   XHTML   1.0   Transitional//EN"   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
   
  <script   runat="server">  
           
          public   int   cbCount   =   0;  
          StringBuilder   sb   =   new   StringBuilder("No   page   postbacks   have   occurred.");  
          //   Define   method   that   processes   the   callbacks   on   server.  
          public   void   RaiseCallbackEvent(String   eventArgument)  
          {  
                  cbCount   =   Convert.ToInt32(eventArgument)   +   1;  
                   
          }  
   
          //   Define   method   that   returns   callback   result.  
          public   string   GetCallbackResult()  
          {  
                  return   cbCount.ToString();  
          }  
   
          protected   void   Page_Load(object   sender,   EventArgs   e)  
          {  
                   
   
                  //   Check   if   this   is   a   postback.  
                  if   (Page.IsPostBack)  
                  {  
                          sb.Append("A   page   postback   has   occurred.");  
                  }  
   
                  //   Write   out   any   messages.  
                  MyLabel.Text   =   sb.ToString();  
   
                  //   Get   a   ClientScriptManager   reference   from   the   Page   class.  
                  ClientScriptManager   cs   =   Page.ClientScript;  
   
                  //   Define   one   of   the   callback   script's   context.  
                  //   The   callback   script   will   be   defined   in   a   script   block   on   the   page.  
                  StringBuilder   context1   =   new   StringBuilder();  
                  context1.Append("function   ReceiveServerData1(arg,   context)");  
                  context1.Append("{");  
                  context1.Append("Message1.innerText   =     arg;");  
                  context1.Append("value1   =   arg;");  
                  context1.Append("}");  
   
                  //   Define   callback   references.  
                  String   cbReference1   =   cs.GetCallbackEventReference(this,   "arg",  
                          "ReceiveServerData1",   context1.ToString());  
                  String   cbReference2   =   cs.GetCallbackEventReference("'"   +  
                          Page.UniqueID   +   "'",   "arg",   "ReceiveServerData2",   "",  
                          "ProcessCallBackError",   false);  
                  String   callbackScript1   =   "function   CallTheServer1(arg,   context)   {"   +  
                          cbReference1   +   ";   }";  
                  String   callbackScript2   =   "function   CallTheServer2(arg,   context)   {"   +  
                          cbReference2   +   ";   }";  
   
                  //   Register   script   blocks   will   perform   call   to   the   server.  
                  cs.RegisterClientScriptBlock(this.GetType(),   "CallTheServer1",  
                          callbackScript1,   true);  
                  cs.RegisterClientScriptBlock(this.GetType(),   "CallTheServer2",  
                          callbackScript2,   true);  
   
          }  
  </script>  
   
  <script   type="text/javascript">  
  var   value1   =   0;  
  var   value2   =   0;  
  function   ReceiveServerData2(arg,   context)  
  {  
          Message2.innerText   =   arg;  
          value2   =   arg;  
  }  
  function   ProcessCallBackError(arg,   context)  
  {  
          Message2.innerText   =   'An   error   has   occurred.';  
           
  }  
  </script>  
   
  <html   xmlns="http://www.w3.org/1999/xhtml">  
  <head   id="Head1"   runat="server">  
          <title>ClientScriptManager   Example</title>  
  </head>  
  <body>  
          <form   id="Form1"   runat="server">  
                  <div>  
                          Callback   1   result:   <span   id="Message1">0</span>  
                          <br   />  
                          Callback   2   result:   <span   id="Message2">0</span>  
                          <br   />  
                          <br   />  
                          <input   type="button"   value="ClientCallBack1"   onclick="CallTheServer1(value1,   alert('Increment   value'))"   />  
                          <input   type="button"   value="ClientCallBack2"   onclick="CallTheServer2(value2,   alert('Increment   value'))"   />  
                          <asp:Button   ID="Button1"   runat="server"   Text="Button"   />  
                          <br   />  
                          <br   />  
                          <asp:Label   ID="MyLabel"   runat="server"   EnableViewState="true"></asp:Label>  
                  </div>  
          </form>  
  </body>  
  </html>Top

4 楼zhupan(天涯)回复于 2006-06-01 22:12:01 得分 0

谢谢!看懂了!哈哈Top

相关问题

关键词

得分解答快速导航

  • 帖主:zhupan
  • wolfofsky

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo