ExtJs+C#的WebService练习模板


    /// <summary>
    /// 这个是用于获取所有记录到页面进行展示
    /// </summary>
    [ScriptMethod(ResponseFormat = ResponseFormat.Json), WebMethod(EnableSession = true)]
    public void read()
    {
        var info = "[{\"id\":\"01\",\"email\":\"a1\",\"first\":\"a2\",\"last\":\"a3\"},{\"id\":\"02\",\"email\":\"b1\",\"first\":\"b2\",\"last\":\"b3\"},{\"id\":\"03\",\"email\":\"c1\",\"first\":\"c2\",\"last\":\"c3\"}]";
        Context.Response.Charset = "UTF-8"; //设置字符集类型  
        Context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
        Context.Response.ContentType = "application/json; charset=UTF-8";
        Context.Response.Write(info);
        Context.Response.End();

    }



    /// <summary>
    /// 这个集合传过来
    /// </summary>
    /// <param name="ListData"></param>
    [ScriptMethod(ResponseFormat = ResponseFormat.Json), WebMethod(EnableSession = true)]
    public void create(List<Email> ListData)
    {
        //在这里对集合进行校验,如果是新增的则入库,如果是修改的则更新
        string strName = "";

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

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta name="google" content="notranslate" />
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta http-equiv="Content-Language" content="en">
    
     <title>Writer Example</title>
    <link href="EtxJs/examples/classic/shared/examples.css" rel="stylesheet" />
    <link href="EtxJs/examples/classic/writer/writer.css" rel="stylesheet" />
    <!-- GC -->
      
     <script src="EtxJs/examples/classic/shared/include-ext.js"></script>
     <script src="EtxJs/examples/classic/shared/options-toolbar.js"></script>
     <script src="EtxJs/examples/classic/shared/examples.js"></script>
     <script src="EtxJs/examples/classic/writer/writer.js"></script>
     <script src="EtxJs/ext-lang-zh_CN.js"></script>
</head>
<body>
</body>
</html>

 

Ext.define('Writer.Form', {
    extend: 'Ext.form.Panel',
    alias: 'widget.writerform',

    requires: ['Ext.form.field.Text'],

    setActiveRecord: function(record){
        this.activeRecord = record;
        if (record) {
            this.getForm().loadRecord(record);
        } else {
            this.getForm().reset();
        }
    },
});

Ext.define('Writer.Grid', {
    extend: 'Ext.grid.Panel',
    alias: 'widget.writergrid',

    requires: [
        'Ext.grid.plugin.CellEditing',
        'Ext.form.field.Text',
        'Ext.toolbar.TextItem'
    ],

    initComponent: function () {
        Ext.apply(this, {
            iconCls: 'icon-grid',
            frame: true,
            plugins: {
                cellediting: true
            },
            dockedItems: [{
                xtype: 'toolbar',
                items: [{
                    iconCls: 'icon-add',
                    text: 'Add',
                    scope: this,
                    handler: this.onAddClick
                }, {
                    iconCls: 'icon-delete',
                    text: 'Delete',
                    //disabled: true,
                    itemId: 'delete',
                    scope: this,
                    handler: this.onDeleteClick
                }]
            }, 
            {
                weight: 1,
                xtype: 'toolbar',
                dock: 'bottom',
                ui: 'footer',
                items: ['->', {
                    iconCls: 'icon-save',
                    text: 'TestSave',
                    scope: this,
                    handler: this.onSave
                }]
            }],
            columns: [ {
                text: 'id',
                width: 50,
                sortable: true,
                resizable: false,
                draggable: false,
                hideable: false,
                menuDisabled: true,
                dataIndex: 'id',
                renderer: function (value) {
                    //先将字符串转换为整型
                    var ttValue = value.length > 0 ? parseInt(value) : "";
                    return Ext.isNumber(ttValue) ? ttValue : '&nbsp;';
                }
                }
            , {
                header: 'emailName',
                flex: 1,
                sortable: true,
                dataIndex: 'email',
                field: {
                    type: 'textfield'
                }
            }, {
                header: 'first',
                width: 100,
                sortable: true,
                dataIndex: 'first',
                field: {
                    type: 'textfield'
                }
            }, {
                header: 'last',
                width: 100,
                sortable: true,
                dataIndex: 'last',
                field: {
                    type: 'textfield'
                }
            }]
        });
        this.callParent();
        this.getSelectionModel().on('selectionchange', this.onSelectChange, this);
    },
    
    onSelectChange: function(selModel, selections){
        this.down('#delete').setDisabled(selections.length === 0);
    },

    /*t同步保存按钮事件*/
    onSave: function () {
        var itemList = this.store.data.items;//每个items里面都有一个data,将data里面的值都取出来
        var ListData = new Array();

        for (var i = 0; i < itemList.length; i++) {
            ListData.push(itemList[i].data);
        }

        Ext.Ajax.request({
            url: 'Account/WebService.asmx/create',
            method: 'POST',
            jsonData: { ListData: ListData },
            success: OnGetDataSuccess,
            failure: OnGetDataFail
        });

        function OnGetDataSuccess() {
            alert("success");
        }

        function OnGetDataFail() {
            alert("false");
        }
    },
    //删除
    onDeleteClick: function(){
        var selection = this.getView().getSelectionModel().getSelection()[0];
        if (selection) {
            this.store.remove(selection);
        }
    },
    //增加
    onAddClick: function () {
        var rec = new Writer.Person({
                id: "",
                first: "",
                last: "",
                email: ""
            }),
            edit = this.findPlugin('cellediting');

        edit.cancelEdit();
        this.store.insert(0, rec);
        edit.startEditByPosition({
            row: rec,
            column: 1
        });
    }
});

Ext.define('Writer.Person', {
    extend: 'Ext.data.Model',
    fields: [
    "id", "email", "first", "last"],
    validators: {
        email: {
            type: 'length',
            min: 1
        },
        first: {
            type: 'length',
            min: 1
        },
        last: {
            type: 'length',
            min: 1
        }
    }
});

Ext.require([
    'Ext.data.*',
    'Ext.tip.QuickTipManager',
    'Ext.window.MessageBox'
]);

Ext.onReady(function () {
    var dataa = new Array(); 
    var store = "";
    var data = "";
    Ext.tip.QuickTipManager.init();

    Ext.define('Writer.Person', {
        extend: 'Ext.data.Model',
        fields: [
        "id", "email", "first", "last"]
    });

  
    Ext.Ajax.request({
        url: '/Account/WebService.asmx/read',
        method: 'POST',
        //jsonData: { UserName: "" },
        //headers:{'Content-Type':'application/json;utf-8'},
        success: OnGetDataSuccess,
        failure: OnGetDataFail
    });

    function OnGetDataSuccess(request, options) {

       var  data = Ext.util.JSON.decode(request.responseText);
       for (var i = 0; i < data.length;i++){
           var modelData = [data[i].id, data[i].email, data[i].first, data[i].last]
           dataa.push(modelData);
       }
       store = new Ext.data.ArrayStore({
           data: dataa,
           fields: [
              { name: "id" },
              { name: "email" },
              { name: "first" },
              { name: "last" }
           ]
       });

       var main = Ext.create('Ext.container.Container', {
           width: 500,
           height: 650,
           renderTo: document.body,
           layout: {
               type: 'vbox',
               align: 'stretch'
           },
           items: [{
               itemId: 'form',
               xtype: 'writerform',
               manageHeight: false,
               margin: '0 0 10 0',
               listeners: {
                   create: function (form, data) {
                       store.insert(0, data);
                   }
               }
           }, {
               itemId: 'grid',
               xtype: 'writergrid',
               title: 'User List',
               flex: 1,
               store: store,
               listeners: {
                   selectionchange: function (selModel, selected) {
                       main.child('#form').setActiveRecord(selected[0] || null);
                   }
               }
           }]
       });

    };

    function OnGetDataFail() {
        alert("false");
    };

});

 

js的请求发送的部分是:

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值