Extjs4.2 rest 与webapi数据交互----顺便请教了程序员的路该怎么走

这一章接着上一篇

对于Ext.data.Store 介紹 与总结,以及对以前代码的重构与优化

1.对于更新OnUpdate()函数的修改:先上代码:

function OnUpdate(record) {
    //获取要更新的数据
    var functionCode = Ext.getCmp('code').getValue();
    var FunctionName = Ext.getCmp('name').getValue();
    var IsEnabled = Ext.getCmp('isEnable').getValue();
    var Invoker = Ext.getCmp('Invoker').getValue();
    var module = Ext.getCmp('Module').getValue();

    record.set('FunctionCode', functionCode);
    record.set('FunctionName', FunctionName);
    record.set('IsEnabled', IsEnabled);
    record.set('Invoker', Invoker);
    record.set('Module', module);

    store.commitChanges();

    win.close();
}

这里面将要修改的record记录传了过来,直接使用record的set方法对数据进行更新,然后用store的commitChanges()方法进行提交。

然后它对应的就是rest的Put方式。

2.rest方式前面讲到都是向后台传值,那么他从后台传出来的值应该怎么办呢。其实细心的读者可能会发现,上面程序是存在问题的,啥问题?如果后台对数据的操作失败了怎么办?我怎么才能知道,这就是问题所在了。

  在网上找了好久才找到方法,在store使用afterRequest,这个在api上没有,也不知道api不全或者其他原因,我试了好几种方法都不行,折腾了快一天了才搞定

大家看下代码:

 store = Ext.create('Ext.data.Store', {
        autoLoad: true,
        autoSync: true,
        pageSize: 20,
        model: 'InterfaceModel',
        proxy: {
            type: 'rest',
            url: 'api/InterfaceManage',
            reader: {
                type: 'json',
                root: 'Data',
                totalProperty: 'TotolRecord',
                successProperty: 'success',
                messageProperty: 'msg'
            },
            writer: {
                type: 'json'
            },
            afterRequest: function (request, success) {
                var result = request.operation.success;

                if (request.action == 'read') {

                }

                else if (request.action == 'create') {
                    if (result) {
                        Ext.Msg.alert('添加提示', '添加成功!');
                        store.reload();
                    } else {
                        Ext.Msg.alert('添加提示', '添加失败!');
                    }
                }

                else if (request.action == 'update') {
                    if (result) {
                        Ext.Msg.alert('提示', '更新成功!');
                        store.reload();
                    }
                    else {
                        Ext.Msg.alert('提示', '更新失败!');
                    }
                }

                else if (request.action == 'destroy') {
                    if (result) {
                        Ext.Msg.alert('提示', '数据删除成功');
                        store.reload();
                    }
                    else {
                        Ext.Msg.alert('提示', '数据删除失败');
                    }
                }
            }
        }

    });

这里面相应的后台程序也需要改

/// <summary>
        /// 更新接口信息
        /// </summary>
        /// <param name="ic">需要更新的数据</param>
        public ReturnMsg Put(InterfaceConfig ic)
        {
            try
            {
                OlandHIPDBEntities db = new OlandHIPDBEntities();

                var data = from item in db.InterfaceConfig
                           where item.ID == ic.ID
                           select item;

                InterfaceConfig old = data.SingleOrDefault();

                old.FunctionCode = ic.FunctionCode;
                old.FunctionName = ic.FunctionName;
                old.Invoker = ic.Invoker;
                old.IsEnabled = ic.IsEnabled;
                old.Module = ic.Module;

                db.SaveChanges();
                return new ReturnMsg() { success = true, msg = "test" };
            }
            catch (Exception)
            {
                return new ReturnMsg() { success = false, msg = "test" };
            }
        }

由于对Extjs的不理解,真的很费力,但如果找对了方法,看起来了又很简单,等今天把列过滤解决掉,这个项目就基本完活了。等下周就要进入wpf的开发了,唉,刚开始熟悉,又要离开,真不舍得。

  再发一点牢骚,程序员的路究竟该怎么走?我其实很迷茫,样样通,公司需要。但是对自己的长期发展不利,样样通的后果就是样样不精。但是你想精通一门也不行,公司不允许,因为他是跟项目定的。有的人说要学会拒绝,但是你敢吗?汗,我也不知道自己在说什么……迷茫中

 

时间: 2025-01-29 23:24:10

Extjs4.2 rest 与webapi数据交互----顺便请教了程序员的路该怎么走的相关文章

《程序员度量:改善软件团队的分析学》一度量数据

度量数据 在探讨了度量有助于解决的关键问题之后,需要确定具体的数据元素以及收集它们的手段.每个领域的关键数据元素应该满足可获取.可理解以及易解释的目标.这些数据元素将成为后续度量的构造块. 关于程序员技能及贡献的数据 为了测量程序员的技能,要获得关于程序员所做的工作(不论是明显的或者不明显的)的数据和关键指标以及程序员之间交互的不同方式.这些数据应提供程序员个体的所有技能的充分.全面的图景,以及能够测量程序员对软件项目和软件开发团队所作贡献的关键方式.

JSP数据和JavaScirpt数据交互

JSP数据和JavaScirpt数据交互使用问题的一种解决方法 对于WEB程序来说,前端(JavaScript)和后端(JSP/Servlet)是没法共用数据的,只能是后端程序(JSP)把数据输出,生成页面到前端,这时候生成的页面中的JavaScript代码才有可能得到所谓jsp的数据.同样的,只有把JavaScript里的数据提交给后端JSP代码,JSP程序中才能得到JavaScript的数据. 那如何实现在页面的JavaScript中使用jsp中的数据或是在jsp中使用页面的JavaScri

PHP JSON格式数据交互实例详解

此前我写了不少在PHP网站开发中应用XML进行数据交互的实例,这两天通过PHP解析JSON并进行交互的实例学习和了解了JSON在PHP中的应用,感觉非常方便,在PHP中解析JSON主要用到json_encode和json_decode两个PHP JSON函数,比PHP解析XML方便很多,下面详细介绍下PHP JSON的使用. JSON基础介绍 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. JSON主要有两种结构: "名称/值"对的集合,

在.net中轻松掌握Windows窗体间的数据交互

window|交互|数据 Windows 窗体是用于 Microsoft Windows 应用程序开发的.基于 .NET Framework 的新平台.此框架提供一个有条理的.面向对象的.可扩展的类集,它使您得以开发丰富的 Windows 应用程序.一个Windows窗体就代表了.NET架构里的System.Windows.Forms.Form类的一个实例. 作者在CSDN技术论坛.NET板块下的C#分类经常看到有人问起如何在两个Form间传递数据,访问修改对方窗体里面的值.对于有经验的程序员来

在.net中轻松掌握Windows窗体间的数据交互(一)

window|交互|数据 在.net中轻松掌握Windows窗体间的数据交互(一) zhzuo(秋枫) Windows 窗体是用于 Microsoft Windows 应用程序开发的.基于 .NET Framework 的新平台.此框架提供一个有条理的.面向对象的.可扩展的类集,它使您得以开发丰富的 Windows 应用程序.一个Windows窗体就代表了.NET架构里的System.Windows.Forms.Form类的一个实例. 作者在CSDN技术论坛.NET板块下的C#分类经常看到有人问

在.net中轻松掌握Windows窗体间的数据交互(二)

window|交互|数据 在.net中轻松掌握Windows窗体间的数据交互(二) zhzuo(秋枫) <在.net中轻松掌握Windows窗体间的数据交互(一)>一文中我们讲了使用带参数的构造函数来实现窗体间的数据传递,我认为是用的比较多的一种,接下来让我们看看另外两种实现方法. 二.给窗体添加属性或方法 1.使用Form类的Owner属性 获取或设置拥有此窗体的窗体.若要使某窗体归另一个窗体所有,请为其 Owner 属性分配一个对将成为所有者的窗体的引用.当一个窗体归另一窗体所有时,它便随

在.net中轻松掌握Windows窗体间的数据交互(三)

window|交互|数据 在.net中轻松掌握Windows窗体间的数据交互(三) zhzuo(秋枫) 在第一篇和第二篇文章中我们使用带参数的构造函数.属性以及方法实现了数据的交互,接下来要讲的是使用静态类来完成窗体间的数据交互.这个也是我们经常要用到的一种数据交互方法. 三.使用静态类 下面是定义的一个类: using System; using System.Collections; namespace ZZ { public class AppDatas { private static

C#实现Winform间的数据交互的三种方法

使用.NET编写winform程序,比较常见的一种情况就是如何实现Form间的数据交互,下面就简单总结一下常见的几种数据交互方式: 1.修改子窗体的构造函数: 简单地说就是通过修改子窗体Form的构造函数,如下所示: public Frm_Child(string Para1, ArrayList List1, TextBox textBox1, Form. Frm_Main) { InitializeComponent(); } 上面的例子中,为子窗体Frm_Child添加了4个参数,分别是:

Android使用WebView加载HTML数据交互问题

问题描述 Android使用WebView加载HTML数据交互问题 Android开发在使用WebView加载HTML界面时,如何在Android的JAVA类中获取HTML界面的数据?求大神指教,有代码最好 解决方案 andorid和js交互最流行的方式就是用JSBridge,可以上github看看,这个不是简单的一两句代码就能搞定的,需要一个很好的框架支撑. 解决方案二: android中动态加载webview,webview加载html数据,并且隐藏滚动条android 使用webview加