效果图先贴上:
点击新增增加一条新行、行内点击可进行修改、删除;
引用文件
ps:需注意bootstrap版本必须与bootstrap-editable.js的版本一致,我引用的是bootstrap 3的;
代码贴上:
html:
js:
$(function(){
Binding();
})
//新增
function insert() {
//绑定附件
$('#button').click(function () {
$('#fjTable').bootstrapTable('insertRow', {
index: 0,
row: {
YGFJ_YG_ID: '',
YGFJ_NAME: '',
YGFJ_STATE: '',
YGFJ_BZ: ''
}
});
});
//新增
$('#getTableData').click(function () {
let dataList = JSON.parse(JSON.stringify($('#fjTable').bootstrapTable('getData')));
let data = [];
//新增数组
let addData = [];
for (var i = 0; i < dataList.length; i++) {
if (dataList[i].YGFJ_ID == null) {
//新增数组填充
data.push(dataList[i]);
}
}
$.ajax({
url: '/YGJFJ/AddFj',
type: 'post',
traditional: true,
dataType: 'json',
data: { data: JSON.stringify(data), status: 'add' },
success: function (data) {
if (data == "success") {
alert("新增成功!");
$('#fjTable').bootstrapTable("refresh");
}
},
error: function () {
alert("新增失败!");
}
})
});
}
//修改
function update(index) {
let dataList = JSON.parse(JSON.stringify($('#fjTable').bootstrapTable('getData')));
let result = [];
for (var i = 0; i < dataList.length; i++) {
if (dataList[i].YGFJ_ID != null) {
//修改数组填充
result.push({ "YGFJ_ID": dataList[i].YGFJ_ID, "YGFJ_YG_ID": dataList[i].YGFJ_YG_ID, "YGFJ_NAME": dataList[i].YGFJ_NAME, "YGFJ_STATE": dataList[i].YGFJ_STATE, "YGFJ_BZ": dataList[i].YGFJ_BZ });
}
}
let data = result[index];//根据下表获取当前修改的第几行的数据
$.ajax({
url: '/YGJFJ/AddFj',
type: 'POST',
traditional: true,
data: { data: JSON.stringify(data), status: 'update' },
success: function (data) {
if (data == "success") {
alert("修改成功!");
$('#fjTable').bootstrapTable("refresh");
}
}, error: function () {
alert("修改成功!");
}
});
}
//删除
function deleteD(id) {
if (confirm('是否确认删除?')) {
$.ajax({
url: '/YGJFJ/AddFj',
type: 'POST',
traditional: true,
data: { data: JSON.stringify(id), status: 'delete' },
success: function (data) {
if (data=="success") {
alert("删除成功!");
$('#fjTable').bootstrapTable("refresh");
}
}, error: function () {
alert("删除失败!");
}
});
}
}
//绑定表格
function Binding() {
$('#fjTable').bootstrapTable('destroy');
$('#fjTable').bootstrapTable({
fitColumns: true,
toolbar: '#toolbarFj',
striped: true,
pageSize: 5,
//clickToSelect:true,
pageList: [5, 10, 15, 20],
pagination: true,
sortable: true,
dataType: "json",
dataField: "data",
totalField: "totals",
sidePagination: 'server',
pageNumber: 1,
detailView: false,
method: "Get",
url: "/YGJFJ/GetFjList?ts=" + new Date().getTime(),
columns: [[
{
field: "YGFJ_YG_ID", title: "油罐编号", width: 150,
editable: {
type: "select",
source: function () {
var result = [];
$.ajax({
url: '/YGJFJ/GetYG',
type: "get",
async: false,
data: {},
success: function (data, status) {
$.each(data, function (key, value) {
result.push({ value: value.YGJFJ_ID, text: value.YGJFJ_NUM });
});
}
});
return result;
},
placement: 'right',
title: "选择油罐编号", //编辑框的标题
disabled: false, //是否禁用编辑
mode: "popup", //编辑框的模式:支持popup和inline两种模式,默认是popup
validate: function (value) { //字段验证
if (!$.trim(value)) {
return '不能为空';
}
}
} //动态select
},
{
field: "YGFJ_NAME", title: "附件名称", width: 150,
editable: {
type: 'text',
title: '附件名称',
placement: 'right',
emptytext: "空文本",
validate: function (v) {
if (!v) return '附件名称不能为空';
}
}
},
{
field: "YGFJ_STATE", title: "状态", width: 150,
editable: {
type: 'text',
title: '附件名称',
placement: 'right',
emptytext: "空文本",
validate: function (v) {
if (!v) return '附件名称不能为空';
}
}},
{
field: "YGFJ_BZ", title: "备注", width: 150,
editable: {
type: 'text',
title: '附件名称',
placement: 'right',
emptytext: "空文本",
validate: function (v) {
if (!v) return '附件名称不能为空';
}
}
},
{
field: "Operate", title: "操作", width: 55, formatter: function (value,row,index) {
return '
';
}
},
]],
});
}
后台代码:
public JsonResult AddFj(string data, string status)
{
JavaScriptSerializer js = new JavaScriptSerializer();
if (status=="update")
{
SBSSGL_YGFJ sBSSGL_YGFJ = ParseFromJson
db.Entry(sBSSGL_YGFJ).State = EntityState.Modified;
}
if (status=="add")
{
List>(data);//json反序列化转list
foreach (var item in add)
{
var insert = new SBSSGL_YGFJ{
YGFJ_ID=Guid.NewGuid(),
YGFJ_YG_ID=item.YGFJ_YG_ID,
YGFJ_NAME=item.YGFJ_NAME,
YGFJ_STATE = item.YGFJ_STATE,
YGFJ_BZ = item.YGFJ_BZ
};
db.SBSSGL_YGFJ.Add(insert);
}
}
if (status == "delete")
{
string id = data.Replace("\"","");
SBSSGL_YGFJ del = db.SBSSGL_YGFJ.Find(Guid.Parse(id));
db.SBSSGL_YGFJ.Remove(del);
}
db.SaveChanges();
return Json("success");
}
///
/// 获取Json的Model
///
///
///
///
public static T ParseFromJson
{
T obj = Activator.CreateInstance
using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(szJson)))
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
return (T)serializer.ReadObject(ms);
}
}