在datagrid中如何实现让一行进入编辑状态,修改数据后,保存信息呢?
1 //点击列表变成文本框,进入可编辑状态 2 3 $(function () { 4 var doc = $(document), 5 table = $("#divReportTable"); 6 doc.on("mousedown", ".btnEdit", function () { 7 8 var th = $(this), 9 ind = th.attr("index"), 10 keyid = th.attr("keyid"); 11 12 type = th.attr("type"); 13 if (th.hasClass("btnEdit")) { 14 if (type == "edit") { 15 16 table.datagrid("beginEdit", ind); 17 setTimeout(function () { 18 th.html("保存") 19 .attr("type", "sava"); 20 var _ele = table.datagrid('getEditors', ind); 21 22 23 }) 24 } else if (type == "sava") { 25 var ele = table.datagrid('getEditors', ind); 26 27 table.datagrid("endEdit", ind);//结束编辑 28 29 30 31 @*//执行保存的操作 32 $.ajax({ 33 url: '@Url.Action("ActionName", "ControllerName")', 34 data: { "ID": keyid, "Score": Score }, 35 type: "POST", 36 async: true, 37 dataType: "json", 38 success: function (result) { 39 if (result.Success == true) { 40 RefreshData() 41 } else { 42 //alert('失败'); 43 } 44 } 45 });*@ 46 } 47 } 48 }) 49 50 51 doc.on("mousedown", ".datagrid-editable-input", function () { 52 //alert('点击了文本框'); 53 console.log(this); 54 //PersonSelect('11', '11txt'); 55 56 var user = $(this).val(); 57 $(this).val(user.UserName); 58 59 }); 60 61 62 })
col.push({ title: "操作", field: "Operate", width: 120, align: "center", resizeable: false, formatter: function (value, row, index) { return "<a href=\"javascript:void(0)\" class='btnEdit' index='" + index + "' keyid='" + row.ID + "' type='edit'>编辑</a>" } });
colOne.push({ title: "填报人", field: "FillUser", width: 135, align: "center", resizeable: false, rowspan: rows, formatter: function (value, row) { return WorkModel.FormateUser(row.FillUser, row.FillUserName, 1, row.ID, fromType); }, editor: { type: "text" } });
给列加上editor:{type:"text"} 进入编辑状态后,编辑状态下,这一列将显示成文本框. type:字符串,编辑类型,可选值:text,textarea,checkbox,numberbox,validatebox,datebox,combobox,combotree。