GVKun编程网logo

easyui行编辑:利用append row添加行,直接在行中编辑,ajax提交保存(easyui 行内编辑)

7

针对easyui行编辑:利用appendrow添加行,直接在行中编辑,ajax提交保存和easyui行内编辑这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展ajax异步、同步问题,KindE

针对easyui行编辑:利用append row添加行,直接在行中编辑,ajax提交保存easyui 行内编辑这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展ajax异步、同步问题,KindEditor ajax提交内容,ajax提交form表单、easyui datagrid 在不关闭行编辑情况下,更新行,更新单元格。、easyui datagrid 的行编辑器 editor 如何实现新增时可修改,编辑时,不可修改、EasyUI datagrid 行编辑等相关知识,希望可以帮助到你。

本文目录一览:

easyui行编辑:利用append row添加行,直接在行中编辑,ajax提交保存(easyui 行内编辑)

easyui行编辑:利用append row添加行,直接在行中编辑,ajax提交保存(easyui 行内编辑)

今天工作用到了easyui行编辑,在这里总结一下,不会的同学可以看看,顺便吐槽一下,网上的很多博客都是粘贴复制的,内容很乱 ,而且看不懂,不知道这些粘贴复制的怀的是什么心,不但没用,还影响别人搜索。
呼吁大家在写博客的时候认真一些,别只粘贴复制,至少可以自己运行好了贴上自己的代码和一点感想,对别人用处很大的。

好了,正题开始——>

我用的是easyui 1.4

效果如下:
点击添加按钮,在第二行的位置添加新行,点击单元格输入内容,点保存通过ajax提交。
修改则直接点击单元格修改,点保存提交。


代码如下:
首先table还是平常的table,只不过要在需要编辑的列加上editor:'text' 我这里只是编辑文本,所以是text,其他时间等类型请查api,
另外因为我触发修改的方式是直接点击单元格,所以table要加上onClickCell属性,然后重写onClickCell方法。

$("#remark_dg").datagrid({
            url:'',columns:[[ 
                {field:'cb',checkBox:true,align:'center'},{field:'id',title:'编号',width:80,hidden:true},{field:'text',title:'内容',editor:'text'}
            ]],toolbar:'#remark_tb',//表格菜单
            fit:true,fitColumns:true,loadMsg:'加载中...',//加载提示
            rownumbers:true,//显示行号列
            singleSelect:true,//是允许选择一行
            onClickCell: onClickCell,queryParams:{   //在请求数据是发送的额外参数,如果没有则不用写
            },onLoadSuccess:function(data){
            },rowStyler:function(index,row){
            }
        });

简单说明下可编辑的实现方法:
首先通过beginEdit让选中的行启动编辑,保存的时候,获得选中的行,通过row取到编辑的信息,使用ajax提交,提交完成,使用endEdit属性结束行编辑。

//可编辑行
    var editIndex = undefined;
    function endEditing(){
        if (editIndex == undefined){return true}
        if ($('#remark_dg').datagrid('validateRow',editIndex)){
            $('#remark_dg').datagrid('endEdit',editIndex);
            editIndex = undefined;
            return true;
        } else {
            return false;
        }
    }
    function onClickCell(index,field){
        if (editIndex != index){
            if (endEditing()){
                $('#remark_dg').datagrid('selectRow',index)
                        .datagrid('beginEdit',index);
                var ed = $('#remark_dg').datagrid('getEditor',{index:index,field:field});
                ($(ed.target).data('textBox') ? $(ed.target).textBox('textBox') : $(ed.target)).focus();
                editIndex = index;
            } else {
                $('#remark_dg').datagrid('selectRow',editIndex);
            }
        }
    }
    function accept(){
        if (endEditing()){
            var row = $('#remark_dg').datagrid('getSelected');
            var text = row.text;
            var remarkid = row.id;
            var typeid = $("#typeid").val();
            $.ajax({
                url:"${ctx}/typeRemark/addTypeRemark.do",type:"post",dataType:"json",data:{
                    remarkid:remarkid,text:text,typeid:typeid
                },success:function(data){
                    if(data.status == "success"){
                        $.messager.show({
                            title : '提示',msg : '操作成功'
                        });
                        $('#dg').datagrid('load',{});
                    }else{
                        $.messager.show({
                            title : '提示',msg : '操作失败,请联系管理员 ------'
                        });
                    }
                },error:function(){
                        $.messager.show({
                            title : '提示',msg : '系统错误,请联系管理员------'
                        });
                }
            });
        }
    }
    function addRemark(){
         function addRemark(){
        if (editIndex != undefined){
            return ;
        }
        $('#remark_dg').datagrid('insertRow',{
            index: 1,// 索引从0开始
            row: {
                text:''
            }
        });
        $('#remark_dg').datagrid('selectRow',1);
        $('#remark_dg').datagrid('beginEdit',1);
        var ed = $('#remark_dg').datagrid('getEditor',{index:1,field:'text'});
        $(ed.target).focus();
        editIndex = 1;
    }
    }

这里有必要提一下,我的添加和修改方法用了一个方法accpet(),同时后台也用一个方法处理的,有需要的可以借鉴一下:
表现层用的是spring mvc,持久成用的hibernate:

@RequestMapping(value = "/addTypeRemark.do",method = RequestMethod.POST)
    @ResponseBody
    public Map<String,String> addTypeRemark(String text,String typeid,@RequestParam(value = "remarkid",required = false)Integer remarkid,HttpServletRequest request){
        Map<String,String>  map = new HashMap<String,String> ();
        System.out.println(typeid);
        try {
            BatchType batchType=batchTypeMag.find(Integer.parseInt(typeid));
            TypeRemark typeRemark = new TypeRemark();
            if(remarkid!=null){
                typeRemark = typeRemarkMag.find(remarkid);
            }
            typeRemark.setBatchType(batchType);
            typeRemark.setText(text);
            typeRemarkMag.saveOrUpdate(typeRemark);
            map.put("status","success");
        } catch (Exception e) {
            e.printstacktrace();
            map.put("status","fail");
        }
        return map;
    }

也就是说,添加的时候,没有这条记录的id,修改的时候需要通过记录的id修改,所以可以判断一下。

这样,easyui动态编辑行就完成啦

========================================================================================================

分割线
========================================================================================================
上次写的这个行编辑还是有点问题的,就是没有验证,而且添加的时候没有获取到焦点。所以这里修改一下:
1.editor类型改为textBox,因为text不支持easyui的验证
columns:[[ 
                {field:'id',editor:{
                    type:'textBox',options:{
                        required:true,validType:'length[0,30]',invalidMessage:'不能超过30个字!'
                    }
                }}
            ]],

2.添加获取焦点:

function addRemark(){
        if (editIndex != undefined){
            return ;
        }
        $('#remark_dg').datagrid('insertRow',{
            index: 0,0);
        $('#remark_dg').datagrid('beginEdit',0);
        var ed = $('#remark_dg').datagrid('getEditor',{index:0,field:'text'});
        $(ed.target).textBox('textBox').focus(); 
        editIndex = 0;
    }

3.添加撤销操作:

function reject(){
            $('#remark_dg').datagrid('rejectChanges');
            editIndex = undefined;
    }
<a href="javascript:reject()" class="easyui-linkbutton" data-options="iconCls:'icon-undo',plain:true" >取消</a>

ajax异步、同步问题,KindEditor ajax提交内容,ajax提交form表单

ajax异步、同步问题,KindEditor ajax提交内容,ajax提交form表单

如果ajax不采用异步,整个js代码在服务器返回结果前都将阻塞,alert方法除外


lookUp('lookUp','',100,300,3);

showMessage('lookUp','false',false,-1);

alert();

callAjaxByName();

title = title? title:"编辑";

$(".modal-title").html(title);

$("#myModal").modal("show");

红色部分将在ajax返回结果后在执行



当用Ajax提交表单时,KindEditor的内容获取不到,HTML数据获取不了

原因:当ajax提交时,KindEdito的HTML数据还没有同步到表单中来,

KindEditor同时提供了方法:

afterBlur

编辑器失去焦点(blur)时执行的回调函数。

数据类型: Function

默认值: 无

解决方案:

<script type="text/javascript">

KindEditor.ready(function (K) {

window.editor = K.create('#AContent',{

afterBlur: function () { this.sync(); }

});

});

</script>

ajax提交form:$('#'+iFormId).serialize();

easyui datagrid 在不关闭行编辑情况下,更新行,更新单元格。

easyui datagrid 在不关闭行编辑情况下,更新行,更新单元格。

var tmpIndex = editIndexs[rewriteTableId];
                    //获取 主要的按钮对象  单元格
                    var ed = $(rewriteTableId).datagrid(''getEditor'', {index:tmpIndex,field:"FPROJECTNUMBER"});
                    $(ed.target).textbox(''setValue'', rowData.FPROJECTNUMBER);
                    // 有editor的更新方法------------------------------------------------
                    $($(rewriteTableId).datagrid(''getEditor'', {index:tmpIndex,field:"FCREATEPROJECTID"}).target).textbox(''setValue'', rowData.FID);
                    // 没有editor 的列,更新方法       --------选择按钮的列名---------------------------------要反写的字段列明------------------------弹窗  选择的 数据。
                    $(ed.target).parents("td[field=''FPROJECTNUMBER'']").siblings("td[field=''FPROJECTNAME_L1'']").find("div").html(rowData.FPROJECTNAME_L1);
                    $(ed.target).parents("td[field=''FPROJECTNUMBER'']").siblings("td[field=''FPROJECTNAME_L2'']").find("div").html(rowData.FPROJECTNAME_L2);

//更新页面div值并不会 更新datagrid 实体值,所以调用方法更新
                    var rows = $(rewriteTableId).datagrid("getRows");
                    var columns = $(rewriteTableId).datagrid("options").columns;
                    for (i in columns[0]){
                        if(columns[0][i].field== "FPROJECTNAME_L1")
                            rows[tmpIndex][columns[0][i].field] = rowData.FPROJECTNAME_L1;
                        if(columns[0][i].field== "FPROJECTNAME_L2")
                            rows[tmpIndex][columns[0][i].field] = rowData.FPROJECTNAME_L2;

}

思路:

单元格有两种,一种是编辑控件的,一种是只显示的。

1、编辑控件获取编辑,当做textbox控件setValue即可。

2、只供显示的单元格,根据编辑控件对象,找到父节点的 兄弟节点,然后获取 显示字段的div,填入。

但是问题是,值修改页面元素,datagrid实体对象并没有更新数据,当关闭行,或获取数据时,是没有变的。所以用下面的columns 和rows去更新实体对象值。至于原理我也不太懂,就是起作用,好用。哈哈

 

 

easyui datagrid 的行编辑器 editor 如何实现新增时可修改,编辑时,不可修改

easyui datagrid 的行编辑器 editor 如何实现新增时可修改,编辑时,不可修改

项目出现一个需求,要求用户界面的用户名,新增时,可自由输入,编辑时,不可修改

html 页面

<table  id="gridlist" data-bind="datagrid:grid" > 
    <thead>  
        <tr>  
            <th field="ck" checkbox="true"  readOnly:true ></th>        
            <th field="OptimisticLockField"  hidden="true"></th> 
            <th field="UserCode"        sortable="true" align="left"    width="80"   editor="{type:''validatebox'',options:{required: true }}" >用户名   </th>  
            <th field="UserName"        sortable="true" align="left"    width="200"    editor="{type:''validatebox'',options:{required: true }}" >名称   </th> 
            <th field="OriginalPassword" sortable="true" align="left"    width="200"    >密码 </th>
            <th field="Org"             sortable="true" align="left"    width="200" editor="{type:''lookup'',options:{required:true,lookupType:''cloud.PcsOrg'',window:{title:''所属机构''},queryParams:{State:9,Ou:false}}}" formatter="formatOrg" >所属机构 </th>
            <th field="IsEnable"        sortable="true" align="center"    width="120" editor="{type:''checkbox'',options:{on:1,off:0}}" formatter="com.formatCheckbox" >是否可用</th>
            <th field="IsAdmin"         align="center"  width="120"        editor="{type:''checkbox'',options:{on:1,off:0}}" formatter="com.formatCheckbox">是否管理员</th>
            <th field="LoginCount"      sortable="true" align="right"    width="120"  >登录次数</th>
            <th field="LastLoginDate"   sortable="true" align="left"    width="135"  formatter="com.formatDate">最后登录日期</th>
            <th field="LastLoginOU"     align="left"  width="170" hidden="true"  >最后登录组织</th>
            <th field="OrganizeNames" align="left" width="170">最后登录组织</th>
            <th field="Permit"          align="center"  width="320" formatter="formatterButton"> 操作     </th> 
            <th field="Description"     align="left"  width="150"  editor="text">描述</th>

        </tr>                            
    </thead>      
</table>

原先编辑方法

//原先编辑方法
    this.editClick = function () {
        if (self.RowsCount() > 1) return;
        var row = self.grid.datagrid(''getSelected'');
        if (row == null) {
             com.message(''error'', "请选中需编辑的一行数据");
            return;
        }
        var index = self.grid.datagrid(''getRowIndex'', row);
        self.gridEdit.begin(index, row);
        self.viewType = v_edit;
        self.IsViewType(v_edit);
    };

新的编辑方法

//新的编辑方法
    this.editClick = function () {
        if (self.RowsCount() > 1) return;
        var row = self.grid.datagrid(''getSelected'');
        if (row == null) {
             com.message(''error'', "请选中需编辑的一行数据");
            return;
        }
        //在编辑后把用户名改为查看状态
        if (row._isnew == undefined) {
            //编辑的时候把用户名改为查看状态
            $(''#gridlist'').datagrid(''removeEditor'', ''UserCode'');
        }
        var index = self.grid.datagrid(''getRowIndex'', row);
        self.gridEdit.begin(index, row);
        self.viewType = v_edit;
        self.IsViewType(v_edit);
    };

页面效果

1)新增时

 

 2)编辑时

 

 

总结:使用 datagrid 的 removeEditor 方法,指定对应列名,如语法:  $(''#gridlist'').datagrid (''removeEditor'', ''UserCode'');

EasyUI datagrid 行编辑

EasyUI datagrid 行编辑

一、HTML:

<div class="info">
    ="info_tt">
        span ="info_tt1">明细</span> ="pucker2"></><a ="del" onclick="detailDel()"
            href="javascript:void(0)">删除a="sure"="detailOK()" href>
                确认="add"="detailAdd()">添加divtable id="detailList"table>
>
View Code

二、JS:

<script type="text/javascript">
    $(function () {
        //使用JavaScript创建数据表格
        $('#detailList').datagrid({
            url: '/PMP/EntryNoticeManage/GetDetailList',一个用以从远程站点请求数据的超链接地址。控制器/方法
            queryParams: {
                type: 1,entryNoticeId: 0
            },iconCls: 'icon-save'正在加载中,请稍后.....',1)">当从远程站点载入数据时,显示的一条快捷信息。
            singleSelect: true,1)">设置为true将只允许选择一行
            fitColumns: 设置为true将自动使列适应表格宽度以防止出现水平滚动
            striped: 设置为true将交替显示行背景
            pagination: false,1)">设置true将在数据表格底部显示分页工具栏。
            rownumbers: 设置为true将显示行数。
            pagePosition: 'bottom',1)">定义的分页栏的位置。可用的值有 'top','bottom','both'。
            sortName: 'creatTime',1)">当数据表格初始化时以哪一列来排序。
            sortOrder: 'desc',1)">定义排序顺序,可以是'asc'或者'desc'(正序或者倒序)。
            idField: 'Id',1)">表明该列是一个唯一列。
            onClickRow: detailClickRow,frozenColumns: [[                  跟列属性一样,但是这些列固定在左边,不会滚动。

                           ]],columns: [[
                         { field: 'Id',title: 'ID',hidden: true },{ field: 'ProtastDetId',title: 'ProtastDetId',{ field: 'WorkContent',title: '工作内容',width: 100,align: 'center',sortable: Box',options: { validType: 'length[1,50]',required: } }
                         },{ field: 'Remarks',title: '备注',options: { validType: 'length[0,500]'} }
                         }
                     ]]
        }); end datagrid

        loadgrid(1,"@entryNotice.Id",0);

    });

    明细编辑行索引
    var detailEditIndex = undefined;

    明细结束编辑
     detailEndEdit() {
        if (detailEditIndex == undefined) { return  }
        if ($('#detailList').datagrid('validateRow'= undefined;
            ;
        } else {
            false;
        }
    }

    明细点击行
     detailClickRow(index) {
        if (detailEditIndex != index) {
            if (detailEndEdit()) {
                $('#detailList').datagrid('selectRow'= index;
            }  {
                $('#detailList').datagrid('selectRow'添加行
     detailAdd() {
         (detailEndEdit()) {
            $('#detailList').datagrid('appendRow';
            $('#detailList').datagrid('selectRow'删除行
     detailDel() {
        return }
        $('#detailList').datagrid('cancelEdit'= undefined;
    }

    临时保存
     detailOK() {
         (detailEndEdit()) {
            $('#detailList').datagrid('acceptChanges');
        }
    }

    重新查询,显示第一页
     loadgrid(type,entryNoticeId,proTaskId) {
        $('#detailList').datagrid('load');
    }
</script>
View Code

三、完整示例页面:

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}
@using Model.Suya;
@using Suya.PMP.Contract.Model;
@{
    BeforeAllocationModel beforeAllocation = ViewData["BeforeAllocationModel"] as BeforeAllocationModel;
}
link href="/Content/Plugins/UploadifyJs/uploadify.css" rel="stylesheet" type="text/css" />
script src="/Content/Plugins/UploadifyJs/swfobject.js"="text/javascript"script="/Content/Plugins/UploadifyJs/jquery.uploadify-3.1.min.js"="/Content/Styles/css1/main.css"type>
    $(function () {
        //使用JavaScript创建数据表格
        $('#checkList).datagrid({
            url: /PMP/BeforeAllocationManage/GetCheckList一个用以从远程站点请求数据的超链接地址。控制器/方法
            queryParams: {
                parentId: "@beforeAllocation.idicon-save数据正在加载中,请稍后.....显示的一条快捷信息。
            singleSelect: true设置为true将只允许选择一行
            fitColumns: 设置为true将自动使列适应表格宽度以防止出现水平滚动
            striped: 设置为true将交替显示行背景
            pagination: false设置true将在数据表格底部显示分页工具栏。
            rownumbers: 设置为true将显示行数。               
            sortName: creatTime当数据表格初始化时以哪一列来排序。
            sortOrder: desc            idField: Id表明该列是一个唯一列。
            onClickRow: checkClickRow,onLoadSuccess:  (data) {
                calCheckTotal(data.rows);
            },frozenColumns: [[                  idIDcheckTime校对时间100centerdatetimeBoxrequired: baackTime返回时间useTime校对用时numberBox02correctTime修改用时} }
                         }
                     ]]
        }); end datagrid

        $(#auditList/PMP/BeforeAllocationManage/GetAuditList            onClickRow: auditClickRow,1)"> (data) {
                calAuditTotal(data.rows);
            },1)">#fileList/PMP/BeforeAllocationManage/GetAttList            frozenColumns: [[                  attachmentfileName附件 (value,row,index) {
                                 return <a href="DownloadFile?name=' + escape(value) + &url= row.attachment " target="_blank"> value </a>;
                             }
                         },1)">uploadTime上传时间operate操作<a href="javascript:void(0);" onclick="delFile( index )">删除</a>;
                             }
                         }
                     ]]
        }); end datagrid

        验证信息
        jQuery(#frm).validate({
            定义验证规则
            rules: {
                beforeBillCode: {
                    required: 
                },taskType: {
                    required: required: 500required: required: required: required: score: {
                    number: score: {
                    number: 
                }
            },1)">定义提示信息
            messages: {
                beforeBillCode: {
                    required: 必填长度不超过500数字 (form) {
                点提交时调用更新方法
                btnAdd();
            }
        });

        $(#uploadify).uploadify({
            height: 25/Content/Plugins/UploadifyJs/uploadify.swf/PMP/BeforeAllocationManage/UploadFile选择文件上传4MB文件*.* (fileObj,data,response) {
                var d = eval(("  data ));
                $(.uploadify-queue-item).find(.data).html(&nbsp;&nbsp;上传完成).datagrid(appendRownew Date()
                });
            },onUploadError:  (event,ID,fileObj,errorObj) {
                if (event.size > 4 * 1024 1024) {
                    alert(超过文件上传大小限制(4M)!);
                    return;
                }
                alert(上传失败);
            }
        }); end uploadify

    });                   end $.ready

    合计
     calCheckTotal(rows) {
         sum1 = ;
         sum2 for ( i ; i < rows.length; i++) {
            sum1 += parseFloat(rows[i].useTime);
            sum2  parseFloat(rows[i].correctTime);
        }
        $(#checkTotal合计:校对用时: sum1.toFixed() &nbsp;&nbsp;修改用时: sum2.toFixed());
    }

     calAuditTotal(rows) {
        #auditTotal合计:审核用时:删除附件
     delFile(index) {
        $(deleteRow日期格式
     dateformatter(value) {
        !value) "" (value instanceof Date) {
             value.format(yyyy-MM-dd hh:mm);
        }
        else  (value.indexOf(Date!= -1) {
             date  Date();
            date.setTime(value.replace(/\/Date\((-?\d+)\)\/$1));
             date.format( ($.trim(value)  Date(value.replace(g,1)">);
        }
    }

     dateparser(value) {
         Date();
         date;
        }
        else {
             arr  value.split();
             arr1  arr[].split( arr2 : y  parseInt(arr1[],1)">10 M  h  parseInt(arr2[ m isNaN(y) && isNaN(M) isNaN(d) isNaN(h) isNaN(m)) {
                 Date(y,M -  {
                 Date();
            }
        }
    }

    添加
     btnAdd() {
         params  FormToJson($().serializeArray());
         att  $(getRows);
         check  audit );

        $.ajax({
            url: /PMP/BeforeAllocationManage/InsertOrUpdatePOSTjsonarams: params,att: JSON2.stringify(att),check: JSON2.stringify(check),audit: JSON2.stringify(audit) },success:  (data) {
                 (fnet.ajax.success(data)) {
                    fnet.msg.info(保存成功);
                    back();
                }
                 {
                    fnet.msg.error(data.msg);
                }
            }
        });
    }

    保存
     save() {
         (checkEndEdit() && auditEndEdit()) {
            $().submit();
        }
         {
            fnet.msg.info(请先保存校对记录和审核记录返回
     back() {
        parent.$(#ttTab).tabs(select项目前期任务分配考核表 tab  parent.$(getSelected);
        tab.find(iframe).contents().find(#btnSearch).click();
        parent.$(close修改项目前期任务分配考核表);
    }

    选择项目前期任务单
     selBeforeProtast() {
        $.iDialog({
            title: 选择项目前期任务单500px800pxurl:/Auth/BeforeProtastDialog/Index确认选择 () {
                this.content.doOK( (data) {
                    $(#beforeBillCode).val(data.BeforeBillCode);
                    $(#projectCode).val(data.ProjectCode);
                    $(#projectName).val(data.ProjectName);
                    $(#productCodeShow).html(data.ProjectCode);
                     (data.Attachment) {
                         pos  data.Attachment.lastIndexOf();
                         len  data.Attachment.length  pos;
                         name  data.Attachment.substr(pos #attachment).html(name);
                        $().attr(hrefDownloadFile?name= escape(name)  escape(data.Attachment));
                    }
                }); 调用子窗口的函数
            }
        });
    }

    选择人员
     selemp(id) {
        $.iDialog({
            title: 选择人员url:/HR/EmployeeManage/SelEmployee# id).val(data.EmployeeName);
                    $( id + input).val(data.EmployeeCode);
                });  checkList操作开始 ===================================================================================
    编辑行索引
     checkEditIndex  undefined;

    结束编辑
     checkEndEdit() {
         (checkEditIndex == undefined) {  }
         ($(validateRowendEdit undefined;
             rows );
            calCheckTotal(rows);
            ;
        } ;
        }
    }

    点击行
     checkClickRow(index) {
        != index) {
             (checkEndEdit()) {
                $(selectRowbeginEdit index;
            }  {
                $(添加行
     checkAdd() {
         (checkEndEdit()) {
            $().length ;
            $(删除行
     checkDel() {
         }
        $(cancelEdit undefined;
    }

    临时保存
     checkOK() {
        acceptChanges重新查询,显示第一页
     loadcheckgrid(type,proTaskId) {
        $(loadclearSelections);
    }
     checkList操作结束 ===================================================================================

     auditList操作开始 ===================================================================================
     auditEditIndex  auditEndEdit() {
         (auditEditIndex );
            calAuditTotal(rows);
             auditClickRow(index) {
         (auditEndEdit()) {
                $( auditAdd() {
         (auditEndEdit()) {
            $( auditDel() {
         auditOK() {
         loadauditgrid(type,1)"> auditList操作结束 ===================================================================================
form ="frm" action=""="label"input ="button" class="submit_btn" value="保存"="save()" style="float: right;" />
    ="返回"="back()"="info"="margin-top: 37px;">基础信息>(带i ="red"> * i>号项必填) ="info_con"="padding-top: 5px;"width="100%" border="0" bgcolor="#f9f7f7" cellspacing="1" cellpadding="1">
            tr>
                td ="txt_right"
                    单号:
                td="txt_left">
                    ="hidden" name="id"="@beforeAllocation.id" />
                    ="xinxi_txt" id="billCode"="@beforeAllocation.billCode" >@beforeAllocation.billCode
                    制单人:
                ="billCreator"="@ViewBag.employeeCode" >@ViewBag.employeeName
                    制单时间:
                ="billDate"="@DateTime.Now.ToString("yyyy-MM-dd HH:mm")" >@DateTime.Now.ToString("yyyy-MM-dd HH:mm")>*项目前期任务单:
                ="text"="beforeBillCode"  value="@beforeAllocation.beforeBillCode"  readonly="readonly"
                        onclick="selBeforeProtast()" ="projectCode"="@(beforeAllocation.ProjectInfo == null ? "" : beforeAllocation.ProjectInfo.billCode)"  ="javascript:void(0)"="easyui-linkbutton"="selBeforeProtast()"
                        data-options="iconCls:'icon-search'">选择
                    项目名称:
                ="projectName"" : beforeAllocation.ProjectInfo.projectName)" readonly
                        disabled="disabled" />
                任务类型:
                select ="taskType" editable="false"="width: 153px"="xueli">
                        option valueoption  @(beforeAllocation.taskType == "0" ? "selected='selected'" : "") 
                            载荷图"1" ? "selected
                            方案图="2""2" ? "selected
                            工程量统计="3""3" ? "selected
                            载荷图与工程量统计select
                    提资附件:
                
                    @{
                        string attachmentName = "";
                        string attachmentHref = "";
                        if (beforeAllocation.BeforeProtast != null && !string.IsNullOrWhiteSpace(beforeAllocation.BeforeProtast.attachment))
                        {
                            int pos = beforeAllocation.BeforeProtast.attachment.LastIndexOf('/');
                            int len = beforeAllocation.BeforeProtast.attachment.Length - pos - 1;
                            attachmentName = beforeAllocation.BeforeProtast.attachment.Substring(pos + 1,len);
                            attachmentHref = "DownloadFile?name=" + Server.UrlEncode(attachmentName) + "&url=" + Server.UrlEncode(beforeAllocation.BeforeProtast.attachment);
                        }
                    }
                    ="attachment"="@attachmentHref" target="_blank">@attachmentName
                    任务内容附件上传:
                ="txt_left" colspan="3"="fileList"="width: 90%;"="file"="uploadify"="width: 400px;" 
                    暂停原因:
                textarea ="stopReason">@beforeAllocation.stopReasontextarea
                    暂停时间:
                ="stopTime"="@(beforeAllocation.stopTime.HasValue ? beforeAllocation.stopTime.Value.ToString("yyyy-MM-dd HH:mm") : "")"  readonly
                        onfocus="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm',minDate:'1900-01-01'})"="" 
                    备注:
                ="remark">@beforeAllocation.remark>审核评分项目编号:
                    ="productCodeShow">@(beforeAllocation.ProjectInfo == null ? "" : beforeAllocation.ProjectInfo.billCode)设计内容:
                    ="desingContent">@beforeAllocation.desingContent设计人:
                    ="desinger"="desingerShow"="@(beforeAllocation.Desinger == null ? "" : beforeAllocation.Desinger.name)" readonly="readonly" />
                        = "@(beforeAllocation.Desinger == null ? "" : beforeAllocation.Desinger.employeeCode)"="selemp('desinger')"
                            data-options校对人:
                    ="checker"="checkerShow"="@(beforeAllocation.Checker == null ? "" : beforeAllocation.Checker.name)" readonly" : beforeAllocation.Checker.employeeCode)" ="selemp('checker')"审核人:
                    ="auditor"="auditorShow"="@(beforeAllocation.Auditor == null ? "" : beforeAllocation.Auditor.name)" readonly" : beforeAllocation.Auditor.employeeCode)"="selemp('auditor')"审核人打分:
                    ="auditorscore"="@beforeAllocation.auditorscore" 审定人:
                    ="confirmPerson"="confirmPersonShow"
                        value="@(beforeAllocation.ConfirmPerson == null ? "" : beforeAllocation.ConfirmPerson.name)" readonly" : beforeAllocation.ConfirmPerson.employeeCode)" ="selemp('confirmPerson')"
                        任务开始时间:
                    ="startDate" readonly="@(beforeAllocation.startDate.HasValue ? beforeAllocation.startDate.Value.ToString("yyyy-MM-dd HH:mm") : "")" 
                        任务结束时间:
                    ="endDate"="@(beforeAllocation.endDate.HasValue ? beforeAllocation.endDate.Value.ToString("
                        要求用时:
                    ="needTime"="@beforeAllocation.needTime" 
                        实际用时:
                    ="factTime"="@beforeAllocation.factTime"
                        评分:
                    ="score"="@beforeAllocation.score" 
                        备注:
                    ="scoreRemark">@beforeAllocation.scoreRemark>校对记录="checkDel()"
                onclick="checkOK()">确认="checkAdd()"
                    href="padding: 0;"="checkList"="checkTotal"="padding: 5px; text-align: right;">审核记录="auditDel()"="auditOK()"="auditAdd()"="auditList"="auditTotal"form>
View Code

 

关于easyui行编辑:利用append row添加行,直接在行中编辑,ajax提交保存easyui 行内编辑的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于ajax异步、同步问题,KindEditor ajax提交内容,ajax提交form表单、easyui datagrid 在不关闭行编辑情况下,更新行,更新单元格。、easyui datagrid 的行编辑器 editor 如何实现新增时可修改,编辑时,不可修改、EasyUI datagrid 行编辑等相关知识的信息别忘了在本站进行查找喔。

本文标签: