sinat_34861539
sinat_34861539
2018-04-05 11:51
采纳率: 100%
浏览 823

asp.net easyui datagrid 的roweditting如何删除一行数据

  前端代码和easyui roweditting源码一样

 <a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-remove',plain:true" onclick="removeit()">Remove</a>

 加了javascript语句

 function removeit() {
            if (editIndex == undefined) { return }
            $('#dg').datagrid('cancelEdit', editIndex)
                    .datagrid('deleteRow', editIndex);
            editIndex = undefined;
        }

现在前端点击remove,可以删除一行,但是刷新后又会出现,数据库并不会变化。
后台已绑定数据库,要如何写才能真正删除选中的一行的数据呢?

现在的情况:
图片说明

图片说明

界面:
图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • showbo
    已采纳

    用ajax发送删除请求到服务器,删除掉这行数据,在刷新就不会存在了,要不你这样是删除客户端的,刷新从服务器端又下载这条数据下来了,大概如下

    
            function removeit(){
                if (editIndex == undefined) { return }
                var row = $('#dg').datagrid('getRows')[editIndex];
                $.ajax({////////////注意修改url,和row['ID键']这2个地方
                    url: 'xxxxx.aspx', data: {op:'del', id: row['ID键'] }, complete: function (xhr) {
                        if (xhr.repsponseText == '1') {//服务器返回1标记成功后再删除客户端数据
                            $('#dg').datagrid('cancelEdit', editIndex)
                                    .datagrid('deleteRow', editIndex);
                            editIndex = undefined;
                        }
                        else alert('删除失败,服务器返回内容:'+xhr.responseText)
                    }
                })
    
            }
    

    xxxxx.aspx

    
    protected void Page_Load(object sender,EventArgs e)
    {
    if(Request.Form["op"]=="del"){
    string id=Request.Form["id"];
    //....操作数据库的代码,正常删除只需要输出1,否则输出0或者其他内容就行
    Response.End();//结束其他内容输出,注意aspx一定要加这句,要不aspx里面的html内容会一起输出
    }
    }
    
    点赞 评论
  • talhon
    嘛哩嘛哩吽 2018-04-06 06:49

    你这只是前端删除,假删除。需要调用方法删除数据库数据才会真正的删除数据

    点赞 评论

相关推荐