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个回答

用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内容会一起输出
}
}
sinat_34861539
sinat_34861539 回复showbo: 虽然没有完全解决,还是谢谢了
接近 2 年之前 回复
showbo
支付宝加好友偷能量挖 回复sinat_34861539: 通过父id来删除,客户端js要传递pid的键值,而不是传递记录的id
接近 2 年之前 回复
sinat_34861539
sinat_34861539 已经删了,还是提醒失败,数据库连接初始化那里都没有问题,因为删除之前表能正常显示出来。我现在就是不懂string id = Request.Form["id"];这里的的id,"Delete from product where (pID like '%" + id + "%' ) "和我数据库里的PID,肯定不是一个ID。。我需要string id=选中这一行的第一列的值,才能准确的在数据库里删除。。
接近 2 年之前 回复
showbo
支付宝加好友偷能量挖 回复sinat_34861539: sda到rpTest.DataBind();之间的
接近 2 年之前 回复
showbo
支付宝加好友偷能量挖 回复sinat_34861539: sda到rpTest.DataBind();直接的代码不用了啊,直接cmd.ExecuteNonQuery();执行sql语句,你又不需要获取数据。还有你的con对象初始化了没有。自己打印sql语句看看什么样的
接近 2 年之前 回复
sinat_34861539
sinat_34861539 回复showbo: 我现在做的是删除库存的功能,想把选中的那一行在product表里对应的货物删除。
接近 2 年之前 回复
sinat_34861539
sinat_34861539 回复showbo: 显示删除失败怎么办啊。。T T 我已经把后台和前台代码贴上了,你能帮我看看吗。。
接近 2 年之前 回复
showbo
支付宝加好友偷能量挖 回复sinat_34861539: 有用记得采纳,嘿嘿。。
接近 2 年之前 回复
showbo
支付宝加好友偷能量挖 回复sinat_34861539: 你数据库记录的id,就是你发到客户端的数据中和数据库记录id列一致的那个键。直接拼接上去就行了。string sql="delete from xxx where id="+id;
接近 2 年之前 回复
sinat_34861539
sinat_34861539 回复showbo: 感谢感谢!我想请问一下后台这边,定义的id代表什么?我写数据库语句删除语句的时候不太清楚 where 主键= ? 这一块要怎么写,问号这里是 选中的一行的某一个列属性,不知要怎么表示。。
接近 2 年之前 回复
lanmuzhen1
lanmuzhen1 来学习下的
接近 2 年之前 回复
showbo
支付宝加好友偷能量挖 if (xhr.repsponseText == '1')这里属性打错了,改下==》if (xhr.responseText == '1')
接近 2 年之前 回复

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

sinat_34861539
sinat_34861539 请问如何调用呢
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问