Ext.Net Js调用WebService方法以json对象传递参数

 

  • 概述
     ExtNet控件在自定义控件中使用存在很多的问题,由于ResourceManager控件在页面中必须唯一存在,所以自定义控件中无法使用从而导致Ext控件无法使用js句柄调用后置页面中的方法,我也曾尝试使用ajax的方式调用后置页面中的方法但是执行失败,此时我便想到了使用js代码调用webservice的方法来执行操作。
  • 数据传递对象
[Serializable]
public class DTO {......}
  • WebService代码
    [WebMethod]
    public string SubmitRecord(string strrecord)
    {
        DTO dto = JSON .Deserialize<DTO>(strrecord);
        ......
        return "" ;
    }
  • 前端页面代码
 var SubmitRecord = function (strrecord) {
        Ext.net.DirectMethod.request({
            url: "WebService.asmx/SubmitRecord" ,
            cleanRequest: true,
            params: {
                strrecord: strrecord
            },
            success: function (result) {
                Ext.Msg.alert( "提示信息" , Ext.DomQuery.selectValue("string", result, ""));
            }
        });
    };
  • 后置页面代码
        DTO newRecord = new DTO(){......};
        X.Msg.Confirm("提示信息" , "是否提交记录", new MessageBoxButtonsConfig
        {
            Yes = new MessageBoxButtonConfig
            {
                Handler = "SubmitRecord("+ JSON .Serialize(newRecord) +");",
                Text = "是"
            },
            No = new MessageBoxButtonConfig
            {
                Text = "否"
            }
        }).Show();

http://www.cnblogs.com/liusuqi/

posted @ 2013-05-09 11:53  M守护神  阅读(507)  评论(0编辑  收藏  举报