asp.net带参数回调(二)

 代码中的注释比较详细,没什么好分析的,要注意的是:由于我们在此没有用到上下文的联系,所以ClientScript.GetCallbackEventReference()方法的4个参数为"null",但是OnCallback()脚本函数还是要保留该"context"参数,因为这是接受回调结果的客户端函数的固定格式。

Asp.net后台代码如下:

using System;
using System.Data;
using System.Configuration;
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;

/**/ /*
* 对ICallbackEventHandler接口进行声明,要在客户端调用服务端代码而不回发,必须声明该接口并且实现它的两个方法:
* RaiseCallbackEvent()、GetCallbackResult()
* RaiseCallbackEvent()的参数是从前台传过来的,根据传来的参数执行不同的代码并将结果用GetCallbackResult()返回前台
*/

// 必须声明System.Web.UI.ICallbackEventHandler接口
public partial class _Default : System.Web.UI.Page, System.Web.UI.ICallbackEventHandler
{
    
//定义一个回调的返回值
    private string Result;
    
//定义两个变量,用来接收页面传过来到操作数
    private string Num1;
    
private string Num2;
    
protected void Page_Load(object sender, EventArgs e)
    
{
        
     }


    
/**////
    
/// 该方法是回调执行的方法,根据参数在这个方法中处理回调的内容,该方法没有返回值
    
///

    
/// 此参数是从客户端传过来的
    public void RaiseCallbackEvent(string eventArgument)
    
{
        
//eventArgumeng 为javascript从客户端传递的参数,本例传过来三个参数用“/”分割将每个参数取出存入数组
        string[] PagParams = eventArgument.Split(/);
         Num1
= PagParams[1];
         Num2
= PagParams[2];
        
//根据第一个参数(所选的操作符),调用不同的执行函数
        switch (PagParams[0])
        
{
            
case "0":
                 Result
= add(); break;
            
case "1":
                 Result
= sub(); break;
            
case "2":
                 Result
= multi(); break;
            
case "3":
                 Result
= division(); break;
         }

     }

    
    
/**////
    
/// 该方法是返回回调的结果给客户端
    
///

    
///
    public string GetCallbackResult()
    
{
        
return Result;
     }


    
//一下四个函数是通过RaiseCallbackEvent方法,调用的回调要执行操作的函数
    private string add()
    
{
        
double addResult = double.Parse(Num1) + double.Parse(Num2);
        
return addResult.ToString();
     }


    
private string sub()
    
{
        
double addResult = double.Parse(Num1) - double.Parse(Num2);
        
return addResult.ToString();
     }


    
private string multi()
    
{
        
double addResult = double.Parse(Num1) * double.Parse(Num2);
        
return addResult.ToString();
     }


    
private string division()
    
{
        
double addresult = double.Parse(Num1) / double.Parse(Num2);
        
return addresult.ToString();
     }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值