JQGrid 下拉联动效果 dataEvents 回调


 

JQGrid 下拉联动效果  dataEvents 回调

$(function() {
    var defaults = {
        caption: 'Mail Manage',
        url: 'Mail.ashx',
        pager: 'pager01',
        height: "100%",
        width: 800,
        type: 'POST',
        beforeRequest: function() {
            var postData = $("#list01").jqGrid("getGridParam", "postData"); //获取jqgrid post到服务端的参数
            $.extend(postData, { actiontype: "getMailList" });       //将参数附加到jqgrid 原有参数         这里是我自定义的一个参数传到后台
        },
        colNames: ['ID', '客戶簡稱', '類型', '客戶名稱', '語言', 'Mail', 'MailBooking', 'Creater', 'MailReceiving', 'MailShipping', 'MailReceived', 'Mail14', 'Remark'],
        colModel: [
        {
            name: 'ID', index: 'ID'
        }, {
            name: 'Name', index: 'Name', width: 90, editable: true, edittype: 'text', editoptions: { width: 100, size: 30, maxlength: 100, readonly: true }, editrules: { required: true }
        }, {
            name: 'Role', index: 'Role', width: 90, editable: true, edittype: 'select'
            , editoptions: {
                size: 30, value: { '出貨人': '出貨人', '收貨人': '收貨人', '承運人': '承運人', 'Bondex': 'Bondex' }
                , dataEvents: [
                   { type: 'change',          //下拉选择的时候
                       fn: function(e) {

                           var str = "";
                           $.ajax({
                               url: 'Mail.ashx',
                               async: false,
                               cache: false,
                               dataType: "json",
                               data:{
                                    actiontype:this.value  //传入值,到后台获取json
                                },
                               success: function(json) {
                                    if (json != null) {
                                       var jsonobj = eval(json);

                                       var length = jsonobj.length;
                                       for (var i = 0; i < length; i++) {   //循环option
                                           if (i != length - 1) {
                                               str += "<option>" + jsonobj[i].text + "</option>;";
                                           } else {
                                               str += "<option>" + jsonobj[i].text + "</option>";
                                           }
                                       }
                                     }
                                }
                           });
                           var rolename = $("select#RoleName");   //获取下面下拉框RoleName对象

                           rolename.append(str);                         // 然后绑定下拉框
                       }
                   }
                ]
            }
        }, {
            name: 'RoleName', index: 'RoleName', label: "客戶全稱", width: 90, editable: true, edittype: 'select', editoptions: { size: 30, value: { '': ''}}    //dataUrl : 'Mail.ashx?actiontype=getShipping'
        }, {
            name: 'Language', index: 'Language', editable: true, edittype: 'select', editoptions: { value: { '英語': '英語', '繁體': '繁體' }, size: 30, maxlength: 35 }
        }, {
            name: 'Mail', index: 'Mail', editable: true, edittype: 'textarea', editoptions: { rows: "3", cols: "100", width: 180, height: 150, size: 10, maxlength: 350 }
        }, {
            name: 'MailBooking', index: 'MailBooking', editable: true, edittype: 'textarea', editoptions: { rows: "3", cols: "100", size: 10, maxlength: 35 }
        }, {
            name: 'Creater', index: 'Creater', editable: false, edittype: 'text', editoptions: { size: 10, maxlength: 35 }
        }, {
            name: 'MailReceiving', index: 'MailReceiving', hidden: true, editable: true, edittype: 'textarea', editrules: { edithidden: true }, editoptions: { rows: "3", cols: "100", size: 100, maxlength: 35 }
        }
        , {
            name: 'MailShipping', index: 'MailShipping', hidden: true, editable: true, edittype: 'textarea', editrules: { edithidden: true }, editoptions: { rows: "3", cols: "100", size: 100, maxlength: 35 }
        }, {
            name: 'MailReceived', index: 'MailReceived', hidden: true, editable: true, edittype: 'textarea', editrules: { edithidden: true }, editoptions: { rows: "3", cols: "100", size: 100, maxlength: 35 }
        }, {
            name: 'Mail14', index: 'Mail14', hidden: true, editable: true, edittype: 'textarea', editrules: { edithidden: true }, editoptions: { rows: "3", cols: "100", size: 10, maxlength: 35 }
        }, {
            name: 'Remark', index: 'Remark', hidden: true, editable: true, edittype: 'textarea', editrules: { edithidden: true }, editoptions: { rows: "3", cols: "100", size: 10, maxlength: 200 }
        }
    ],
        rowNum: 15,
        ajaxGridOptions: {
            type: 'POST',
            contentType: 'application/json;charset=utf-8',
            dataType: 'json'
        },
        datatype: 'json',
        viewrecords: true,
        jsonReader: {
            root: "rows",
            page: "page",
            total: "total",
            records: "records",
            repeatitems: false,
            cell: "cell",
            id: "ID",
            userdata: "userdata",
            subgrid: {
                root: "rows",
                repeatitems: true,
                cell: "cell"
            }
        },
        prmNames: {
            page: "page",
            rows: "rows",
            sort: "sidx",
            order: "sord",
            search: "search",
            nd: "nd",
            id: "ID",
            oper: "oper",
            editoper: "edit",
            addoper: "add",
            deloper: "del",
            npage: null,
            totalrows: "totalrows"
        }
        , multiselect: false

    };

    $('#list01').jqGrid(defaults);  //調用方法


    jQuery("#list01").jqGrid('navGrid', '#pager01', { del: false, add: false, edit: false, search: false });


    $("#Button1").click(function() {
        rowid = jQuery("#list01").jqGrid("getGridParam", "selrow");
        rowdata = jQuery("#list01").jqGrid("getRowData", rowid);
        jQuery("#list01").jqGrid('editGridRow', rowid, { width: '680', height: '600'
                , datatype: 'json'
                , reloadAfterSubmit: false
                , afterSubmit: function(data, postd) {
                    return { 0: true };
                },
            afterComplete: function(data, postd) {
                return true;
            },
            url: 'Mail.ashx',
            msg: "you msg"
                , datatype: 'json'
        });
    });

 


});

给大家分享。如有疑问,请留言


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM